Guardar preferencias en Android

Este es uno de los capítulos del tutorial Como programar tu primera aplicación Android en Ubuntu. Encontrarás los enlaces a todos los de capítulos, al final de este artículo.

Introducción

Tal y como indiqué en el artículo anterior, una de las características deseables de cualquier aplicación, es que al iniciar la aplicación la encuentres tal y como la dejaste la última vez que la utilizaste, y, en el caso de la aplicación que estamos desarrollando, esto pasa porque cuando la abras por segunda vez nos encontremos con la última magnitud y unidades que utilizamos, incluso diría que hasta los valores correspondientes a la última conversión que realizaste.

En este nuevo artículo orientado a la programación de Android, vamos a ver como implementar esta característica en nuestra aplicación. Esto es realmente sencillo de hacer en Android, está bien resuelto y es muy fácil de que cualquier aplicación que desarrollemos goce de esta característica.

2013-01-13 21.53.48.png

Guardando y recuperando preferencias

Como he mencionado en la introducción esta característica es realmente sencilla de implementar en las aplicaciones que desarrollemos para Android, y no tenemos que preocuparnos de donde se guardan estas preferencias, ni el formato, ni prácticamente nada. Solo es necesario que seamos consecuentes a la hora de definir el tipo de cada una de las preferencias, es decir, si se trata de un entero, una cadena de texto, etc.

De entre las diferentes opciones que tenemos Android nos pone a disposición para guardar datos, me voy a decantar por la clase SharedPreferences, que nos permitirá guardar y recuperar pares de valores, en forma de enteros, reales, cadenas de texto, etc. Esto nos permitirá volver a utilizar estos valores en diferentes sesiones incluso si cerramos nuestra aplicación, o apagamos el dispositivo y lo volvemos a iniciar. Esto es precisamente lo que estábamos buscando.

Esta clase no es estrictamente para guardar las «preferencias del usuario», para esto existe PreferenceActivity, que nos proporciona las herramientas necesarias para que el usuario seleccione aquellas opciones que debe configurar para el correcto funcionamiento de la aplicación, y que veremos en un artículo posterior, con el objetivo de definir el número de decimales, o si quieres notación científica.

Guardando preferencias

Primero declaramos una variable con el nombre de nuestra configuración.

public static final String EQUIVAL_CONFIGURATION_NAME = "EquivalConfiguration";

Para guardar preferencias solo tendremos que llamar a la clase en cuestión, crear un editor, escribir los valores que necesitas y guardar con «editor.commit()». Sencillo, como adelanté.

SharedPreferences settings = getSharedPreferences(EQUIVAL_CONFIGURATION_NAME, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putInt("magnitud_id",magnitudes.getSelectedItemPosition());
editor.putInt("unit_from_id",unit_from.getSelectedItemPosition());
editor.putInt("unit_to_id",unit_to.getSelectedItemPosition());
editor.commit();

Recuperando nuestras preferencias

Mientras que para recuperarlo, procederemos de forma inversa, llamamos a la clase SharedPreferences, y recuperamos nuestras variables para asignarlas posteriormente a los variables con las que estamos trabajando.

SharedPreferences settings = getSharedPreferences(EQUIVAL_CONFIGURATION_NAME, 0);
int magnitud_id = settings.getInt("magnitud_id", 0);
int unit_from_id = settings.getInt("unit_from_id", 0);
int unit_to_id = settings.getInt("unit_to_id", 0);	    
magnitudes.setSelection(magnitud_id);
unit_from.setSelection(unit_from_id);
unit_to.setSelection(unit_to_id);

Conclusiones

Recordarte que todo el código está disponible en GitHub, para que puedas descargarlo y probarlo por ti mismo, o modificarlo para hacer tu propia versión, o simplemente jugar con él, para sacarle todo el partido posible.

Como ves se trata de una característica realmente sencilla de implementar y que realmente facilita mucho el trabajo al usuario de la aplicación. Aunque le hemos dados al usuario la posibilidad de seleccionar entre cientos de magnitudes, normalmente siempre solemos utilizar la misma, o por lo menos la siguiente vez que iniciamos la aplicación es para hacer la misma conversión, por lo que es recomendable tener esta posibilidad al alcance de tu mano.

Con este artículo prácticamente tenemos completada nuestra aplicación. En los últimos dos artículos de esta serie (para la próxima semana), veremos como crear una actividad para que el usuario seleccione el formato en el que introducir y ver los resultados, me refiero a notación científica, numero de decimales, etc y en el último, añadiremos la posibilidad de crear un menú lateral, como he mencionado en artículos anteriores de esta serie.

Con independencia de todo, y a falta de la temperatura, que la añadiremos también en el artículo de la selección de preferencias, la aplicación es completamente funcional. Lo que estamos haciendo ahora no son mas que retoques para que el usuario se sienta mas cómodo en el manejo de la aplicación.

1 comentario en “Guardar preferencias en Android

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *