2010-07-25 13 views
30

Tengo la página de preferencias. Tiene el campo 'Mostrar pantalla de información' (como casilla de verificación).android sharedpreferences establecer valor

También tengo la página de información que también debe tener la casilla 'Mostrarme de nuevo'.

Como he entendido, puedo obtener el valor de la página de preferencias a través de PreferencesManager.getDefaultPreferences(context) ...

Pero cómo debería establecer el valor de las preferencias para la casilla de verificación en las páginas de información?

Intenté usar context.getSharedPreferences(PREF_NAME, 0).edit(), para establecer el valor, pero no se correlaciona con el valor correspondiente de PreferencesManager.

¿Qué debo hacer ??? F1

Respuesta

98

Depende de si está buscando un conjunto de preferencias para su aplicación o un conjunto por actividad. código

He usado de esta manera:

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

y

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

muchas gracias !!! – davs

+4

+1 para una gran respuesta. Quiero enfatizar que 'Editor' es ** no ** un editor visual modal que espera la interacción del usuario. Es simplemente una forma atómica de hacer lo contrario de 'SharedPreferences.getString()'. – ef2011

+0

use apply() en lugar de commit() lo hará en segundo plano. –

Cuestiones relacionadas