Domanda

Sto cercando di imparare come realizzare sfondi live per Android.Funziona e ora voglio aggiungere un paio di preferenze.Quindi, ho creato un'attività di preferenza e ho seguito tutti gli esempi che ho trovato.

Posso acquisire ListBoxPreferences senza problemi, ma il metodo "onSharedPreferenceChanged" non viene mai chiamato quando una casella di controllo è stata modificata.

È necessario aggiungere un codice aggiuntivo per acquisire le modifiche alle caselle di controllo?Esiste una procedura consigliata per attivare le caselle di controllo nelle preferenze?

Sono due giorni che sbatto la testa contro questo problema, qualsiasi aiuto sarebbe MOLTO apprezzato!

Grazie!

È stato utile?

Soluzione

@Josh - Ottima risposta.

Vorrei aggiungere per completezza che dovresti impostare le cose in modo da registrarti per le modifiche nel metodo onResume() di PreferenceActivity e annullare la registrazione nel metodo onPause().

La risposta a questa domanda ha un buon esempio di codice tratto dai programmi di esempio Android di serie.

In alternativa, puoi anche registrare gli ascoltatori per ciascuna delle preferenze in onCreate() della tua attività e gestire gli eventi su di essi separatamente.

Altri suggerimenti

Ti sei registrato per ricevere i callback onSharedPreferenceChanged?

Aggiungi questo metodo onCreate della vostra attività principale (e assicurarsi di implementare onSharedPreferenceChanged):

PreferenceManager.getDefaultSharedPreferences(getBaseContext()).registerOnSharedPreferenceChangeListener(this);
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top