0

一个简单的问题,我就是找不到答案...

我有视图A和B,点击A上的一个按钮后,B出现,此时如果我点击设备上的返回按钮,A将再次显示。现在我在 B 中更改了一些东西,希望它会影响 A,例如通过全局变量设置 A 的背景颜色,这样当按下后退按钮时,A 的背景颜色会发生变化,我该怎么做呢?单击后退按钮显示 A 时会触发什么方法?

4

2 回答 2

0

您应该从 B 显式返回。所以应该有一个颜色选择器和 OK 按钮。该按钮应该关闭活动 B 并为 A 返回值。然后 A 将在 onActivityResult方法中检索该值。

后退按钮并非旨在提供结果。因此,如果您想要您描述的行为。然后当有人在 B 活动中选择颜色时,立即将其保存在 Shared Preferences 中(记得给文件命名)。然后在活动 A 的onResume方法中读取相同的首选项文件并相应地设置背景。

于 2012-12-07T10:41:45.820 回答
0

首先,您需要覆盖 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()中。

还有SharedPreferences

于 2012-12-07T10:43:58.623 回答