我设置了几个 CheckBoxPreferences
,我的偏好类扩展了 PreferenceActivity
并实现了 OnSharedPreferenceChangeListener
这就是我用来回应人们选中/取消选中 CheckBoxPreferences
的内容:
public void onSharedPreferenceChanged(SharedPreferences P, String K) {
if (K.equals(CheckBoxPref_KEY_HERE)) {
MyClass.BooleanVariable = P.getBoolean("CheckBoxPref_KEY_HERE", true);
}
}
据我所知,上面的 onSharedPreferenceChanged
方法从未被调用过?
最佳答案
如果你想对所有偏好做一些事情,这里是解决方案:
创建类成员:
SharedPreferences settings;
在你的 onCreate 方法中:
settings = getSharedPreferences(<your_pref_name>, 0);
settings.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged (SharedPreferences sharedPreferences, String key) {
// Do whatever
}
});
关于java - CheckBoxPreference - onSharedPreferenceChanged 方法未被调用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8373131/