Я знаю, что могу сделать что-то вроде этого:
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!");
}
});
но это не работает. Действительно ли это возможно? Если так, что я делаю неправильно?
Я думаю, что onSharedPrefererenceChanged
запускается после сохранения предпочтения (когда вы нажимаете НАЗАД или ДОМОЙ в PreferenceActivity
) . Я думаю, что самый простой способ - создать один класс, реализующий OnPreferenceChangeListener
, переключиться через Preference.getKey ();
и установить его как OnPreferenceChangeListener
для каждого предпочтения.