2010-07-25 19 views
30

Ho la pagina delle preferenze. Ha il campo 'Mostra schermata informazioni' (come casella di controllo).android sharedpreferences valore impostato

Ho anche una pagina di informazioni che dovrebbe avere anche la casella di controllo 'Mostra di nuovo'.

Come ho capito, posso ottenere valore dalla pagina delle preferenze tramite PreferencesManager.getDefaultPreferences(context) ...

Ma come devo impostare il valore delle preferenze per la casella di controllo a pagina informazioni?

Ho provato a utilizzare context.getSharedPreferences(PREF_NAME, 0).edit(), per impostare il valore ma non è correlato al valore corrispondente di PreferencesManager.

Cosa devo fare ??? F1

risposta

98

Dipende se si è in cerca di un set di preferenze per l'applicazione o di un set per attività. Codice

ho usato in questo modo:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); 
Editor editor = prefs.edit(); 
editor.putBoolean(PREF_NAME, false); 
editor.commit(); 

e

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext()); 
if (prefs.getBoolean(PREF_NAME, true)) { 
    // etc 
} 
+0

grazie mille !!! – davs

+4

+1 per un'ottima risposta. Vorrei sottolineare che 'Editor' è ** non ** un editor visuale modale che aspetta l'interazione dell'utente. È semplicemente un modo atomico per fare l'opposto di 'SharedPreferences.getString()'. – ef2011

+0

use apply() invece di commit() lo farà in background. –

Problemi correlati