Dopo aver cambiato una preferenza (un ambiente), il testo che mostra le impostazioni non aggiorna

StackOverflow https://stackoverflow.com/questions/2633769

  •  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?

È stato utile?

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);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top