Do
SharedPreferences.OnSharedPreferenceChangeListener spChanged = new
SharedPreferences.OnSharedPreferenceChangeListener() {
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
// your stuff here
}
};
В вашем PreferenceActivity
, т.е. сделайте его членом вашего PreferenceActivity
класса, а затем выполните registerOnSharedPreferenceChangeListener(spChanged)
в методе PreferenceActivity.onCreate()
.
Это то, что я делаю, и у меня никогда не возникает проблем.
Иначе виновата ваша условная проверка в слушателе. Разместите код.
EDIT:
Из кода, который вы опубликовали, вы должны сделать prefs
переменной члена класса, чтобы она имела глобальную область видимости.
И сделайте prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
вместо getSharedPreferences
, потому что вы не создали этот файл.
Для создания файла вам необходимо использовать PreferenceManager
. Чтобы получить PreferenceManager
, используйте Activity.getPreferenceManager()
.