Cómo usar SharedPreferences en Android para almacenar, recuperar y editar valores [cerrado]
Quiero almacenar un valor de tiempo y necesito recuperarlo y editarlo. ¿ Cómo puedo utilizar SharedPreferences
para hacer esto?
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 true
si 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í .
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*/
}