Cómo cambiar los valores en la preferencia compartida

He creado una aplicación que utiliza una preferencia compartida para que el usuario pueda iniciar sesión. La contraseña del usuario se guarda en la preferencia. Mi problema es, ¿cómo puedo cambiar la contraseña en la preferencia si el usuario quiere cambiar su contraseña?

SharedPreferences prefs = ... // you already know how to use prefs and have one of this objects Editor editor = prefs.edit(); editor.putString("password", "new value"); editor.commit(); 

Utilice apply() lugar de commit()

Se recomienda que utilice Editor.apply() lugar de commit() porque apply() funciona de forma asincrónica en segundo plano, por lo tanto, es menos probable que haya ANR debido a eso (si es que lo es).

 getSharedPreferences("FILE_NAME", 0 /*FILE_MODE*/) .edit() .putString("password", "new value") .apply(); 

Docs mencionar acerca de apply() ,

Configure sus cambios de preferencias desde este Editor hasta el objeto SharedPreferences que está editando. Esto realiza atómicamente las modificaciones solicitadas, reemplazando lo que está actualmente en SharedPreferences.

Tenga en cuenta que cuando dos editores están modificando las preferencias al mismo tiempo, el último que llame aplica gana.

A diferencia de commit (), que escribe sus preferencias en el almacenamiento persistente de forma sincrónica, apply () confirma sus cambios en SharedPreferences en memoria inmediatamente, pero inicia un commit asincrónico en disco y no se le notificará de ningún error. Si otro editor de SharedPreferences realiza un commit () regular mientras que apply () sigue pendiente, el commit () se bloqueará hasta que todos los commit async se completen, así como el commit mismo.

Como las instancias de SharedPreferences son singletons dentro de un proceso, es seguro reemplazar cualquier instancia de commit () por apply () si ya está ignorando el valor devuelto.

No es necesario preocuparse por los ciclos de vida de componentes de Android y su interacción con apply () escribiendo en disco. El marco asegura que las escrituras de disco en vuelo de apply () estén completas antes de cambiar de estado.

  • NullPointerException en getDefaultSharedPreferences
  • ArrayList <CustomClass> en SharedPreferences
  • Actualizaciones de Android en Play Store
  • Android: obtiene los elementos de la matriz de cadenas y muestra uno por uno en la vista de texto
  • Android ArrayList de objetos personalizados - Guardar en SharedPreferences - Serializable?
  • ¿Dónde se almacenan las preferencias compartidas?
  • sharedPreferences no compartirá entre las actividades
  • Android SharedPreferences, cómo guardar una variable int simple
  • Android Preferences error, "String no se puede convertir en int"
  • Cuál es la mejor manera de usar las preferencias compartidas entre las actividades
  • Lectura de datos SharedPreferences en Fragment, dentro de FragmentActivity
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.