一个简单的问题,我无法找到答案......
我有A和B视图,点击A上的按钮后,B显示,此时如果我点击设备上的后退按钮,A将再次显示。现在我改变B中的某些东西并希望它会影响A,例如通过全局变量设置A的背景颜色,这样当按下后退按钮时,A的背景颜色会发生变化,我该怎么办呢?单击后退按钮显示A时会触发什么方法?
答案 0 :(得分:0)
你应该从B中明确返回。所以应该有一个颜色选择器和OK按钮。该按钮应关闭活动B并返回A的值。然后A将检索该值 onActivityResult 方法。
后退按钮不是为了提供结果。因此,如果您想要您描述的行为。然后当有人在B活动中选择颜色时,立即将其保存在共享首选项中(记住命名文件)。然后在活动A中的 onResume 方法中读取相同的首选项文件,并相应地设置背景。
答案 1 :(得分:0)
首先,您需要覆盖A中的onResume()
方法。一旦A返回可见,将触发onResume()
。
然后,您可以在B中实施onBackPressed()
方法,以保存您通过SharedPreference
或其他设置所做的设置。然后在A的onResume()
上检索它。
因此,整个解决方案将如下:
Acitivty A:
@Override
public void onResume() {
super.onResume();
//blah blah
//Retrieve SharedPreferences or the saved data from B
}
活动B:
@Override
public void onBackPressed() {
//save your data or settings here
}
我认为Activity Lifecycle in Document可以帮助您弄清楚什么是onResume()
以及何时会被解雇。
Documentation中的onBackPressed()
。