Alla aktiviteter som påverkas av inställningar bör implementera OnSharedPreferenceChangeListener, så att inställningarna slår igenom så fort användaren sparar dem. Exempel: om du har en knapp i ditt huvudfönster som du vill visa/dölja beroende på en inställning så ska den aktivitet som innehåller denna knapp implementera OnSharedPreferenceChangeListener, och alltså ha metoden onSharedPreferenceChanged().
För att fortsätta exemplet så kollar du alltså i onSharedPreferenceChanged() värdet på inställningen för knappen, och visar/döljer den utifrån det. Du gör förmodligen samma sak i din onCreate().
I ditt fall vill du förmodligen göra något i denna stil i din aktivitet med knappen:
Kod:
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if ("add_button".equals(key)) {
boolean showButton = prefs.getBoolean("add_button", false);
Button button = (Button)findViewById(R.id.dinKnapp);
if (showButton) {
button.setVisibility(View.VISIBLE);
} else {
button.setVisibility(View.GONE);
}
}
}
Din Prefs-klass behöver INTE implementera OnSharedPreferenceChangeListener.