extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener
这样的Activity需要覆盖方法:public void onSharedPreferenceChanged(SharedPreferences options, String key) ;
然而 如果只是这样,在当前的Activity是不会生效的。
需要覆盖两个方法:
@Override
protected void onResume() {
super.onResume();
// Set up a listener whenever a key changes
getPreferenceScreen().getSharedPreferences()
.registerOnSharedPreferenceChangeListener(this);
}
@Override
protected void onPause() {
super.onPause();
// Unregister the listener whenever a key changes
getPreferenceScreen().getSharedPreferences()
.unregisterOnSharedPreferenceChangeListener(this);
}
然后在onSharedPreferenceChanged里面可以得到修改的内容,否则是无法得到修改的变化的。
可能的原因猜想是因为没有flush,所以配置修改一个不会发生改变。
PrefsActivity修改配置后立即生效。
最新推荐文章于 2020-09-24 10:29:30 发布