1

私はいくつかの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上記のメソッドは呼び出されることさえありませんか?

4

2 に答える 2

1

すべての設定で何かをしたい場合の解決策は次のとおりです。

クラス メンバーを作成します。

SharedPreferences settings;

あなたの onCreate メソッドで:

settings = getSharedPreferences(<your_pref_name>, 0);
settings.registerOnSharedPreferenceChangeListener(new SharedPreferences.OnSharedPreferenceChangeListener() {
  @Override
  public void onSharedPreferenceChanged (SharedPreferences sharedPreferences, String key) {
    // Do whatever
  }
});
于 2011-12-04T04:17:02.023 に答える
0
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;
        }
    });
于 2011-12-04T04:05:27.143 に答える