OnPreferenceChangeListener для каждой установки

Я знаю, что могу сделать что-то вроде этого:

Preference pref = findPreference(getString(R.string.pref_vibrate_on_key));
pref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {

        @Override
        public boolean onPreferenceChange(Preference preference,
                Object newValue) {
            LogUtil.d("Working!");
            return true;
        }

});

Но я хотел бы добавить Слушателя каждого предпочтения. Я пытался делать:

SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(context);
sp.registerOnSharedPreferenceChangeListener(new OnSharedPreferenceChangeListener() {

        @Override
        public void onSharedPreferenceChanged(
                SharedPreferences sharedPreferences, String key) {
            LogUtil.d("working!");

        }

});

но это не работает. Действительно ли это возможно? Если так, что я делаю неправильно?

5
задан Macarse 10 February 2010 в 16:15
поделиться

1 ответ

Я думаю, что onSharedPrefererenceChanged запускается после сохранения предпочтения (когда вы нажимаете НАЗАД или ДОМОЙ в PreferenceActivity ) . Я думаю, что самый простой способ - создать один класс, реализующий OnPreferenceChangeListener , переключиться через Preference.getKey (); и установить его как OnPreferenceChangeListener для каждого предпочтения.

1
ответ дан 14 December 2019 в 04:37
поделиться
Другие вопросы по тегам:

Похожие вопросы: