如何在从另一个视图返回后显示视图时捕获事件?

时间:2012-12-07 10:36:17

标签: android back-button

一个简单的问题,我无法找到答案......

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

2 个答案:

答案 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()

同样SharedPreferences