我将尝试解释一个简单的应用程序场景:我的应用程序直接进入“主视图”。在这个主视图中我插入了一个TextView
它显示通过以下方式创建的当前设置PreferenceManager
。为了简单起见,假设我的设置中有一个复选框。当我第一次启动我的应用程序时 -TextView
在我的主视图上显示我的复选框设置正确(true)。现在我进入设置菜单,它会弹出,然后我将其更改为 false。我回到主视图,没有看到任何变化。即使我将其更改为 false 后,它仍然说是 true。如果我结束应用程序然后重新启动它 - 一切都很好并且它显示了我的更改。
显然,当我更改设置时,主视图只是停留在后台?更改设置后如何重绘或更新主视图?
你可以实施OnSharedPreferenceChangeListener http://developer.android.com/reference/android/content/SharedPreferences.OnSharedPreferenceChangeListener.html在您的主要活动中:
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if (PREFKEY_OF_INTEREST.equals(key))
updateSomethingInMainView();
}
并在 onCreate() 调用中:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)