编程改变它们后更新偏好值(update preferences values after chang

2019-10-19 06:00发布

我有一个简单的PreferenceActivity。
在我的活动IM使用存储在这些键的值。
通过getDefaultSharedPreferencesgetBoolean("somekey")

如果我现在改变为“somekey”相关联的偏好,一切工作正常,
该getBoolean返回正确的值。

但如果我设置的值“somekey”到另一个值编程,
通过Preferences.Editor设置视图不会更新到新的价值! 像这样:

pref_edit.putBoolean("somekey", true);
pref_edit.commit();

如果“somekey”是以前真的,我现在得到通过值getBoolean("somekey");
它是true喜欢什么,我把它改成,但喜好里面的复选框错过这一变化。
为什么? 如何更新偏好的看法?

Answer 1:

那么,有效的问题,它是不容易的-有些人说finish ,另一些人说

setPreferenceScreen(null);
addPreferencesFromResource(R.xml.preferences);

什么我落得这样做,以避免这些措施和它们造成片剂等是注册一个烂摊子SharedPreferences.OnSharedPreferenceChangeListener (让我的喜好的活动转变为一家),当我发现的喜好的变化来更新我的复选框(如果它的值与存储的偏爱不同意-所以并不手动改变,因为如果手动改变我有一个onClick其改变默认共享偏好)。 恼人确实如此。



文章来源: update preferences values after changing them programatically