所以我在 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/