onSharedPreferenceChanged

onSharedPreferenceChanged

我设置了几个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方法从未被调用过吗?

最佳答案

checkBoxPreference = (CheckBoxPreference) this.findPreference("CheckBoxPref_KEY_HERE");

checkBoxPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
    @Override
    public boolean onPreferenceChange(Preference preference, Object newValue) {
            // do your work here
            return true;
        }
    });

09-19 20:30