Shared Preferences Android Studio (Editar, Leer, Eliminar, datos).

Con Shared Preferences Android Studio (preferencias compartidas) podemos guardar datos en un archivo, para posteriormente leer, editar o eliminar la información desde cualquier Actividad en nuestra App, o bien desde otras actividades.

Resumen rápido Android Studio Shared Preferences

Con Shared preferences podemos guardar datos en Android Studio, en un archivo que puede ser leído desde cualquier actividad de tu aplicación. Es un archivo XML.

Shared Preferences Android Studio

Creando la variable Shared preferences.

Primero creamos una variable tipo Shared preferences:

SharedPreferences preferences= getSharedPreferences("nombre_archivo", Context.MODE_PRIVATE);

El primer parámetro es la ID o nombre del archivo. Si existe accederemos a su información, si no existe entonces se creará.

Mientras que el segundo es el Modo, tenemos las siguientes opciones para el Modo.

  • MODE_APPEND, este agregara los nuevos valores a los ya existentes.
  • MODE_ENABLE_WRITE_AHEAD_LOGGING, indicador de base de datos abierta. Si se activa, habilita la escritura anticipada de manera predeterminada.
  • MODE_MULTI_PROCESS, con este método se verifica la modificación en las preferencias (datos guardados) aunque ya se haya cargado la instancia compartida. Casi no se utiliza.
  • MODE_PRIVATE, con este modo, solo se puede acceder al archivo desde la aplicación donde se creó.
  • MODE_WORLD_READABLE, este modo permite que otras aplicaciones puedan leer el archivo, pero no modificarlo.
  • MODE_WORLD_WRITABLE, este modo permite que otras aplicaciones escriban o editen el archivo.

 

Agregando datos.

Una vez que tenemos la variable tipo Shared preferences, el siguiente paso es usar el Editor para agregar valores.

SharedPreferences preferences= getSharedPreferences("nombre_archivo", Context.MODE_PRIVATE);

SharedPreferences.Editor editor = preferences.edit();

editor.putString("id", “valor” );

editor.commit();

Creamos una variable tipo “Editor”, en esta es donde podemos agregar valores, para esto usamos el comando putString(), pero podemos agregar otros tipos de variables como por ejemplo:

  • putString( ID, VALOR)
  • putInt( ID, VALOR)
  • putFloat( ID, VALOR)
  • putBoolean( ID, VALOR)

Debemos indicar su ID o KEY, con este valor se identifica la variable debe de ser tipo String. Para editarla o leerla debemos usar exactamente el mismo ID o KEY.

El VALOR, es el valor de la variable dependiendo del tipo que usemos.

Por ultimo llamamos a la función commit() para guardar los datos, aunque también podemos llamar a apply().

  • Commit(), guarda el valor inmediatamente en la memoria de forma síncrona. El problema con esto, es que debemos evitar llamarlo desde el subproceso principal, ya que puede pausar el procesamiento de la UI.
  • Apply() agrega el valor inmediatamente a la memoria en SharedPreferences, pero actualiza de manera asíncrona y no se nos notificará en caso de errores. Si se hace un commit() mientras un apply() aún está pendiente, ese commit() se bloqueará hasta que se completen las confirmaciones asíncronas.

Si no nos importa el valor de retorno y lo usaremos desde el proceso principal de la aplicación, es recomendable usar apply().

Aquí puedes ver la información oficial.

https://developer.android.com/reference/android/content/SharedPreferences.Editor?hl=es-419#putInt(java.lang.String,%20int)

Leer datos desde Shared Preferences en Android Studio.

Para leer los datos hacemos un proceso similar a cuando escribimos. Necesitamos la variable tipo Shared Preferences que creamos al inicio, luego leemos los valores según el tipo.

SharedPreferences preferences= getSharedPreferences("nombre_archivo", Context.MODE_PRIVATE);

String valor = preferences.getString(“id”, “Default”);

Para obtener el valor solo indicamos la ID y guardamos el valor en una variable. Si la ID no existe entonces nos regresará el valor por default. Podemos usar algunos comandos:

  • getString( ID, DEFAULT)
  • getInt( ID, DEFAULT)
  • getFloat( ID, DEFAULT)
  • getBoolean( ID, DEFAULT)

El valor por default debe de ser acorde al tipo de variable.

Anuncio

Determinar si hay datos en las Preferencias compartidas.

Para esto se usa el comando contains, que regresará Falso o Verdadero.

SharedPreferences preferences= getSharedPreferences("nombre_archivo", Context.MODE_PRIVATE);

Boolean contieneDatos = preferences.contains(“id”);
  • contains( ID)

El único parámetro es la ID, que debe de ser tipo String.

 

Eliminar Shared Preferences Android.

Podemos usar el comando remove para eliminar datos en Sahred Preferences.

Ingresaremos al archivo de las preferencias y eliminaremos una de las variables mediante su ID o KEY.

SharedPreferences preferences= getSharedPreferences("nombre_archivo", Context.MODE_PRIVATE);

SharedPreferences.Editor editor = preferences.edit();

editor.remove("id" );

editor.commit();
  • remove( ID)

Solo tiene un parámetro que es la ID que se eliminará. No se eliminará la variable hasta que se llame a commit() o apply().

Eliminar todo.

Con el comando clear() podemos eliminar toda la información de SharedPreferences.

SharedPreferences preferences= getSharedPreferences("nombre_archivo", Context.MODE_PRIVATE);

preferences.clear();

Solo declaramos la variable SharedPreferences con el archivo, y usamos el comando clear para eliminar todo.

Para eliminar solo el contenido pero no el archivo entonces podemos usar:

SharedPreferences preferences= getSharedPreferences("nombre_archivo", Context.MODE_PRIVATE);

preferences.clear().commit();

Para más tutoriales de Android ve a este enlace.

Algunos temas que te pueden interesar:

Definir valor mínimo de Android Seekbar

3 formas de agregar evento onClick en Android Studio usando Java.