-1

我想将一个值从活动 A 传递给活动 B,而无需实际启动活动 B(因此这排除了使用 Intents 和 putExtra)。活动 B 可能会或可能不会启动,但当它启动时,它需要显示活动 A 传递给它的值。

我搜索了高低,但找不到这个看似简单的问题的任何相关解决方案。任何帮助将不胜感激!

4

6 回答 6

6

你找不到解决方案,因为它违背了任何逻辑。如果活动 B 未启动且可见,则无法执行任何操作。Activity B 甚至可能已经在您不知情的情况下被系统销毁。

您可以使用很多东西来设置一些变量,您的 Activity B 可以读取这些变量,例如在您的应用程序中、在您的 XML 中的某个位置或任何随机类中。

尽管如此,在您启动Activity B 之前,您实际上无法对这些选项中的任何一个执行任何操作,并且当您可以时,它实际上与在 Intent 中提供额外数据相同

于 2013-06-10T08:41:57.930 回答
0

您可以使用共享首选项。使用这个 Activity 可以将 Value 设置到其中,其他 Activity 可以从中读取。

于 2013-06-10T08:43:05.787 回答
0

所以你需要为一个活动保留一个值。如果它启动,则意味着您必须使用这些值,否则您将丢弃这些值。为此,您可以使用具有所需数据类型变量的单独类,并且可以为此创建 getter setter 并使用它。

利用类

public class GetSet {

    public GetSet() {
        super();
    }

    private static boolean passwordSet = false;

    public static boolean isPasswordSet() {
        return passwordSet;
    }

    public static void setPasswordSet(boolean passwordSet) {
        GetSet.passwordSet = passwordSet;
    }
}

您可以使用GetSet.setPasswordSet(false);Boolean flag = GetSet.isPasswordSet();

于 2013-06-10T08:44:34.667 回答
0

将值设置为全局:

公共类全球{

public static int mValue;   


public static int getValue() {
    return mValue;
}

public static void setValue(int mValue) {
    Global.mValue = mValue;
}

}

于 2013-06-10T08:59:07.417 回答
0

使用全局类,如:

public class AppConfig {

    Context context;
    public AppConfig(Context mxt) {

        context = mxt;
    }

    public static String filepath = null;

然后,在活动 A之前onCreate()

AppConfig config;
Context context;

并在onCreate()方法中输入:

context = getApplicationContext();
config = new AppConfig(context);

并且,在第二个活动 B之前onCreate()

AppConfig config;
Context context;

而且,在onCreate()方法中放这个:

context = getApplicationContext();
config = new AppConfig(context);

并将值设置在您想要的位置。希望这会帮助你。

于 2013-06-10T09:21:44.237 回答
0

我一直在寻找答案,但我找不到。所以我找到了一种方法来做到这一点。

第一个活动

Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("Flag" , true);
startActivity(intent);

第二次活动

boolean flag;
flag = getIntent().getBooleanExtra("Flag" ,false);
    if(flag == true)
    {
        this.finish();
    }

所以现在你可以发送任何你想要的数据,它会打开第二个活动,然后在你甚至没有意识到它之后立即关闭它。您可以使用共享偏好来保存您的数据以备后用。

于 2020-05-18T21:47:21.933 回答