Спасибо всем за помощь, я разобрался с большинством из них, вот код
SharedPreferences prefs = PreferenceManager
.getDefaultSharedPreferences(this);
TextView text = (TextView) findViewById(R.id.textView1);
if (prefs.getString("listPref1", "").equals("OFF")) {
text.setText("goodbye");
} else if (prefs.getString("listPref1", "").equals("ON")) {
text.setText("hello");
}
prefs.registerOnSharedPreferenceChangeListener(this);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
TextView text = (TextView) findViewById(R.id.textView1);
if (prefs.getString("listPref1", "").equals("OFF")) {
text.setText("goodbye");
} else if (prefs.getString("listPref1", "").equals("ON")) {
text.setText("hello");
}
}
}
Как видите, я должен повторить оператор if / else, если я помещу его только в слушателя, ничего не получится, пока не будет внесено изменение, а если он находится только вне слушателя, он будет прочитан только при первом запуске приложения и изменения не зарегистрированы.
Нет ли кода, который заставит слушателя уведомить об изменении, и код будет перезапущен?