Para ello nuestra información se guarda en archivos XML con estructura de clave valor. Por ejemplo, para guardar un email nuestra clave podría ser "email" y el valor "jorge23@gmail.com". El modo de acceso tiene 3 posibilidades principales:
- MODE_PRIVATE. Sólo nuestra aplicación tiene acceso a estas preferencias.
- MODE_WORLD_READABLE. Todas las aplicaciones pueden leer estas preferencias, pero sólo la nuestra puede modificarlas.
- MODE_WORLD_WRITABLE. Todas las aplicaciones pueden leer y modificar estas preferencias.
Para obtener una referencia se utiliza la siguiente sintaxis:
SharedPreferences prefs = getSharedPreferences("MisPreferencias",Context.MODE_PRIVATE);
SharedPreferences
prefs = getSharedPreferences("MisPreferencias",Context.MODE_PRIVATE);
String
correo = prefs.getString("email", "por_defecto@email.com")
Como vemos, al método getString()
le pasamos el nombre de la preferencia que queremos recuperar y un
segundo parámetro con un valor por defecto. Este valor por defecto será
el devuelto por el método getString() si la preferencia solicitada no existe en la colección. Además del método getString(), existen por supuesto métodos análogos para el resto de tipos de datos básicos, por ejemplo getInt(), getLong(), getFloat(), getBoolean(), …
Para actualizar o insertar nuevas preferencias el proceso será igual de
sencillo, con la única diferencia de que la actualización o inserción no
la haremos directamente sobre el objeto SharedPreferences, sino sobre su objeto de edición SharedPreferences.Editor. A este último objeto accedemos mediante el método edit() de la clase SharedPreferences. Una vez obtenida la referencia al editor, utilizaremos los métodos put correspondientes al tipo de datos de cada preferencia para actualizar/insertar su valor, por ejemplo putString(clave, valor), para actualizar una preferencia de tipo String. De forma análoga a los métodos get que ya hemos visto, tendremos disponibles métodos put para todos los tipos de datos básicos: putInt(), putFloat(), putBoolean(), etc. Finalmente, una vez actualizados/insertados todos los datos necesarios llamaremos al método commit() para confirmar los cambios. Veamos un ejemplo sencillo:
___
SharedPreferences prefs =
getSharedPreferences(
"MisPreferencias"
,Context.MODE_PRIVATE);
SharedPreferences.Editor editor = prefs.edit();
editor.putString(
"email"
,
"modificado@email.com"
);
editor.putString(
"nombre"
,
"Prueba"
);
editor.commit();
____
.:: Actividad ::.
Vamos a crear un formulario en el que crearemos 2 campos de texto. En el primero guardaremos el nombre de la persona y en el segundo el email. Debajo colocaremos un botón para guardar las preferencias, cuando lo pulsemos estas se guardarán (obtenemos el valor (lo que hemos escrito) con nombreDelEditText.getText() ). Cuando cerremos la aplicación y la volvamos a abrir, estas se cargarán en sus respectivos campos con lo que hemos escrito previamente (es decir,
nombreDelEditText
.setText(editor.getString....).
ATENCIÓN -> Cerrar la aplicación dándole al botón atrás en el emulador (la flecha de retroceso), si le dais a iniciar la actividad en el eclipse no funcionará ya que cada vez que hacemos esto el emulador reinstala la aplicación.
EXTRA -> Para los mas avanzados, cuando lo tengáis, podéis probar a insertar tipos diferentes de campos, por ejemplo, un Spinner con la comunidad a la que pertenece y que guarde la posición seleccionada al iniciar la aplicación o un CheckBox y se guarde su estado (chequeado o no chequeado).
No hay comentarios:
Publicar un comentario