【发布时间】:2013-07-08 11:57:52
【问题描述】:
在MainActivity.class,
我正在更改偏好的值,如下所示:
mPrefs = StripedMain.this
.getSharedPreferences(SHARED_PREFS_NAME, 0);
mPrefs.registerOnSharedPreferenceChangeListener(this);
onSharedPreferenceChanged(mPrefs, null);
public void onSharedPreferenceChanged(SharedPreferences prefs,
String key) {
preVal = prefs.getString(key, "st");
if (preVal.equals("a")){
prefs.edit().putString("name", "Rob").commit();
}
}
这可行,但屏幕本身的值不会立即更改,而是在设置屏幕关闭并再次打开后才会更改。
那为什么会这样,我该如何解决呢?
【问题讨论】:
-
尝试调用那些最初负责显示这些值的东西
-
不要自己打电话给
onSharedPreferenceChanged();。只需从某个地方更改首选项,它就会为您调用。并在onSharedPreferenceChanged();方法中更新您的 GUI,就像您在onCreate()中所做的一样,以立即显示效果。 -
都试过了,都不行.......
-
@Bhavin Nattar,请不要在其他人的帖子中添加您自己的标语(“在此先感谢...”)。通常,标语在编辑时会被删除,而不是添加。谢谢。 Please see this posting on Meta for more information about taglines.
-
@Sparky:感谢好友提供的信息...
标签: android sharedpreferences preferences