java - CheckBoxPreference - onSharedPreferenceChanged 方法未被调用

标签 java android sharedpreferences checkboxpreference

我设置了几个 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/

相关文章:

java - 使用递归反转字符串的方法

java - 如何使用参数执行外部应用程序并接收结果

android - 获取当前通知android

java - Kotlin - 不能使用 'T' 作为具体类型参数。改用一个类

android - "ISO-8859-1"字符串的 SharedPreferences 有问题吗?

java - 如果我将一个类的默认构造函数声明为私有(private),为什么它不能被子类化

java - 具有未经检查的异常的选项

android - 如何使用 ant 命令行来选择我的自定义 build.xml

android - 向上滑动 Activity

android - 共享首选项删除不起作用