android - 如何更改一个 Activity 的 boolean 值或另一个 Activity 中的其他变量值?

标签 android android-activity boolean boolean-logic

所以我在 Activity A 中有一个 boolean 值设置为 false。然后,在另一项 Activity 中我想将该值更改为 true。然后,当我按后退按钮返回 Activity A 时,该 boolean 值现在为 true,并且它在 onCreate 中运行该 boolean 值。

这就是我的意思, Activity A

private static boolean newCardcheck = false;

 @Override
protected void onCreate(Bundle savedInstanceState)
{ 

}


public static void setNewCardcheck() {
    newCardcheck = true;
}


@Override
public void onResume() {
    super.onResume();
   if(newCardcheck)
    {
        Toast.makeText(this,"hey everyone",Toast.LENGTH_SHORT).show();
    }
    else
    {
        alfunction();
        sendCards(storeCards);
    }

}


@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data)
{
    if(requestCode == RESULT_LOAD_IMAGE)
    {
        newCardcheck = true;
    }
}

Activity B:

@Override
public void onBackPressed()
{
    MyActivity.setNewCardcheck();
    super.onBackPressed();
    setResult(Activity.RESULT_OK, getIntent());
    finish();
}

因此,当我按回键时,我希望 newCardcheck 为 true 并运行“if”语句而不是 else 语句。

希望大家能够帮忙。

谢谢。

我还尝试将 setNewCard() 方法放入 onClick 中,但也不起作用。

最佳答案

做到这一点的最佳方法是通过 SharedPreferences。 SharedPreferences 会将您的数据写入应用 apk 内的键/值中的私有(private)文件,即使您关闭设备,该文件也将持续存在。

您可以在 onCreate 中初始化 SharedPreferences,如下所示:SharedPreferences sharedPreferences = getSharedPreferences(getPackageName(), MODE_PRIVATE)。

要存储值,只需调用:sharedPreferences.edit().putString("myKey", stringValue).commit();

要从应用程序的任何位置检索该值,请初始化 SharedPreferences,然后使用以下代码:String myData = sharedPreferences.getString("myKey");

如果有帮助请告诉我!

编辑:您可能还想研究从您的 Intent 中获取结果。请参阅Getting a Result from an Activity 。如果您需要 boolean 值持久化(即:写入存储并在重新启动时可用),请使用 SharedPreferences,否则您可能需要尝试 onActivityResult。

编辑2:

尝试重写 Activity A 中的 onActivityResult,如下所示:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (resultCode == RESULT_OK) {
            myBoolean = true;
        }
}

然后在 Activity B 中尝试

setResult(Activity.RESULT_OK, getIntent()); 完成();

这是将数据传入和传出 Activity 的标准方式。查看我上面的链接,了解如何从 Activity 中获取结果以进行更深入的研究。

关于android - 如何更改一个 Activity 的 boolean 值或另一个 Activity 中的其他变量值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31930326/

相关文章:

java - 如何实现具有自定义开始时间的倒数计时器?

java - libgdx 游戏中的 Google Play 商店错误

android - 如何从广播接收器向正在运行的 Activity 发送数据,

android - 当应用程序进入后台时,将数据从 Android 设备发送到服务器

java - 如何制作面向android的应用程序修复?

java - ListFragment 的 Activity

boolean 类型的 Python 3 小问题

c++ - 查找 boolean 矩阵的秩

c# - 在结构中使用 boolean 值的一些 P/Invoke C# 到 C 编码问题

java - 在Android主游戏循环中旋转位图而不重载GC