Хорошо, я начал реализовывать этот ужасный код с Android от Google. Слушатель OnSharedPreferenceChangeListener не вызывается. Это мой код, не могли бы вы посоветовать?
Определение класса:
private SharedPreferences sPrefs;
private PreferenceChangedListener prefsChangedListener;
У меня есть частный внутренний класс:
private class PreferenceChangedListener implements
OnSharedPreferenceChangeListener {
public void onSharedPreferenceChanged(
SharedPreferences sharedPreferences, String key) {
if (key == "highThreshold") {
try {
highThreshold = Float.parseFloat(sharedPreferences
.getString(key, "0"));
} catch (Exception e) {
}
}
}
}
Попытался использовать следующий код в OnResume и зарегистрировать слушателя после запуска предпочтения «Voorkeuren». Оба терпят неудачу.
sPrefs = getPreferences(MODE_PRIVATE);
prefsChangedListener = new PreferenceChangedListener();
sPrefs.registerOnSharedPreferenceChangeListener(prefsChangedListener );
Я определил класс Voorkeuren, который расширяет PreferenceActivity.
public class Voorkeuren extends PreferenceActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_voorkeuren, menu);
return true;
}
}
Который я открываю следующим образом:
Intent intent = new Intent(getBaseContext(),Voorkeuren.class);
startActivity(intent);
Класс отображается нормально и сохраняет значения между сеансами. Но мое приложение не должно опрашиваться, если настройки изменились. Есть идеи? У меня есть что-то красное в SharedPreferences.Editor, но я не уверен, как это связано.