Dopo aver cambiato una preferenza (un ambiente), il testo che mostra le impostazioni non aggiorna
-
26-09-2019 - |
Domanda
cercherò di spiegare un semplice scenario app: La mia app va a destra a una 'vista principale'. In questa vista principale ho inserito un TextView
che visualizza le impostazioni correnti creati attraverso la PreferenceManager
. Per semplicità, diciamo che ho una casella di controllo nella mie impostazioni. Quando ho iniziare il mio app - il TextView
sul mio punto di vista principali spettacoli impostando correttamente (true) la mia casella di controllo. Ora vado al menu delle impostazioni, si apre-up, e poi cambiarlo su false. Torno alla schermata principale e vedere nessun cambiamento. E 'ancora dire del vero anche dopo che ho cambiato in falsa. Se finisco l'applicazione e poi ri-avviarlo -. Tutto è bene e si vede il mio cambiamento
A quanto pare le principali soggiorni vista solo in background mentre sto cambiando le impostazioni? Come posso ridisegnare o aggiornare la vista principale dopo la modifica delle impostazioni di I?
Soluzione
Quando si va nelle vostre preferenze vostra attività in corso dovrebbe essere messo in pausa e ripreso quando si torna indietro (vedi schema ciclo di vita su ciclo di vita schema sul sito Android ). Si dovrebbe essere in grado di innescare una sorta di ridisegno dall'interno onResume () penserei. Ciò consentirà i dati sulla pagina di ripopolare. Una sorta di invalidate () chiamata sarebbe farlo immagino.
Altri suggerimenti
Si potrebbe implementare OnSharedPreferenceChangeListener nella vostra attività principale:
@Override
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
if (PREFKEY_OF_INTEREST.equals(key))
updateSomethingInMainView();
}
e in onCreate () chiamata:
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);