Cómo usar SharedPreferences en Android para almacenar, recuperar y editar valores [cerrado]

Resuelto Muhammad Maqsoodur Rehman asked hace 54 años • 30 respuestas

Quiero almacenar un valor de tiempo y necesito recuperarlo y editarlo. ¿ Cómo puedo utilizar SharedPreferencespara hacer esto?

Aceptado

Para obtener preferencias compartidas, utilice el siguiente método en su actividad:

SharedPreferences prefs = this.getSharedPreferences(
      "com.example.app", Context.MODE_PRIVATE);

Para leer preferencias:

String dateTimeKey = "com.example.app.datetime";

// use a default value using new Date()
long l = prefs.getLong(dateTimeKey, new Date().getTime()); 

Para editar y guardar preferencias

Date dt = getSomeDate();
prefs.edit().putLong(dateTimeKey, dt.getTime()).apply();

El directorio de muestra del SDK de Android contiene un ejemplo de recuperación y almacenamiento de preferencias compartidas. Está ubicado en:

<android-sdk-home>/samples/android-<platformversion>/ApiDemos directory

Editar ==>

Me di cuenta de que aquí también es importante escribir la diferencia entre commit()y .apply()

commit()devuelve truesi el valor se guardó correctamente, en caso contrario false. Guarda valores en SharedPreferences de forma sincrónica .

apply()se agregó en 2.3 y no devuelve ningún valor ni en caso de éxito ni de fracaso. Guarda valores en SharedPreferences inmediatamente pero inicia una confirmación asincrónica . Más detalles están aquí .

naikus avatar Sep 02 '2010 06:09 naikus

Para almacenar valores en preferencias compartidas:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = preferences.edit();
editor.putString("Name","Harneet");
editor.apply();

Para recuperar valores de preferencias compartidas:

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String name = preferences.getString("Name", "");
if(!name.equalsIgnoreCase(""))
{
    name = name + "  Sethi";  /* Edit the value here*/
}
Harneet Kaur avatar Jun 14 '2012 06:06 Harneet Kaur