Shared Preferences Android Studio

Las preferencias compartidas Android, o Android Shared Preferences se utilizan como un sistema para almacenar datos en la memoria interna de la aplicación. Estos datos se guardan en la forma clave-valor, es decir como un pequeño diccionario donde la clave siempre es un String y el dato es un tipo simple. Así, vamos a poder almacenar datos que usemos de forma recurrente en varias actividades de nuestra app, sin tener que recurrir constantemente al paso de datos entre actividades, como veíamos en el tema anterior.

Es también una forma de almacenar datos recurrentes para que el usuario no tenga que introducirlos constantemente, como por ejemplo las credenciales de acceso como nombre de usuario y contraseña. Es un sistema rápido, ligero y que nos va a evitar montar bases de datos complejas para estas tareas tan sencillas.

Por tanto, podemos resumir que las shared preferences son una forma de aligerar el proceso de almacenado de datos simples (aunque se pueden guardar tipos complejos con GSON).

Cómo utilizar las SharedPreferences

Para utilizar esta funcionalidad del sistema vamos a necesitar distinguir entre las dos posibilidades que tenemos: almacenar datos y recuperar datos. Naturalmente, no vamos a poder leer datos que no hayamos guardado previamente y por eso tenemos que estudiar las dos vertientes.

Guardar datos

Para almacenar informacion en las preferencias vamos a necesitar dos clases: la clase SharedPreferences y la clase Editor. Utilizaremos la clase SharedPreferences para adquirir el espacio de memoria disponible vinculado a nuestra app, de tal forma que sea seguro utilizar ese espacio, pues solo estará permitido (en teoría) a los procesos internos de esa aplicación.

Para instanciar un objeto de este tipo podemos invocar esta instrucción desde dentro de cualquier método de nuestra actividad (que esté dentro del contexto de la actividad):

SharedPreferences settings = getSharedPreferences(“id”,Context.MODE_PRIVATE)

Una vez tengamos instanciado el objeto, invocaremos el editor para ir metiendo la información que queramos. El editor proporciona métodos de almacenamiento para cada tipo simple de datos, con lo que si queremos almacenar un entero llamaremos a putInt(), mientras que si es un String necesitaremos putString().

Así pues, ponemos todos los datos que queramos en el editor y confirmamos la acción con .commit o apply. Con esto tendremos todos los datos almacenados en las preferencias, ahora solo nos faltaría rescatarlos.

editor = settings.edit();
editor.putint(“id”,1);
editor.commit();

Leer datos de las Shared Preferences

Para recuperar los datos previamente almacenados, tan solo tenemos que instanciar el objeto SharedPreferences como antes y llamar al dato que queramos, utilizando su clave. Recuerda usar el método adecuado para su tipo de datos, si es un int necesitamos el getInt().

int id = settings.getInt(“id”,0);

El valor del primer campo, que hemos puesto como «id» es el identificador que usamos para guardarlo en el editor en el paso anterior. El 0 es el valor por defecto, de tal forma que si no encuentra ningún dato con ese id, nos devolverá el valor por defecto.

Aquí te dejo la explicación en el curso Android de Walkiria Apps.

También hago una pequeña introducción con un ejemplo sobre cómo implementar un autologin en la serie de vídeos de la app de los gatitos, por si quieres echarle un vistazo:

Deja un comentario