一个简单的问题,我就是找不到答案...
我有视图A和B,点击A上的一个按钮后,B出现,此时如果我点击设备上的返回按钮,A将再次显示。现在我在 B 中更改了一些东西,希望它会影响 A,例如通过全局变量设置 A 的背景颜色,这样当按下后退按钮时,A 的背景颜色会发生变化,我该怎么做呢?单击后退按钮显示 A 时会触发什么方法?
一个简单的问题,我就是找不到答案...
我有视图A和B,点击A上的一个按钮后,B出现,此时如果我点击设备上的返回按钮,A将再次显示。现在我在 B 中更改了一些东西,希望它会影响 A,例如通过全局变量设置 A 的背景颜色,这样当按下后退按钮时,A 的背景颜色会发生变化,我该怎么做呢?单击后退按钮显示 A 时会触发什么方法?
您应该从 B 显式返回。所以应该有一个颜色选择器和 OK 按钮。该按钮应该关闭活动 B 并为 A 返回值。然后 A 将在 onActivityResult方法中检索该值。
后退按钮并非旨在提供结果。因此,如果您想要您描述的行为。然后当有人在 B 活动中选择颜色时,立即将其保存在 Shared Preferences 中(记得给文件命名)。然后在活动 A 的onResume方法中读取相同的首选项文件并相应地设置背景。
首先,您需要覆盖 A 中的onResume()
方法。onResume()
一旦 A 恢复可见,将被触发。
然后您可以onBackPressed()
在 B 中实现方法,以保存您通过SharedPreference
或其他方式进行的设置。然后在 A 上检索它onResume()
。
因此,整个解决方案将如下所示:
活动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
}
我认为Document 中的 Activity Lifecycle可以帮助您弄清楚它是什么onResume()
以及何时触发。
在文档onBackPressed()
中。