Pero se quedan algo "cortas", no tienen muchas opciones como la que os quiero comentar.
Estoy desarrollando una aplicación para publicarla en Android Market. Me queda una pequeña duda ¿cómo puedo guardar la configuración de la aplicación para que al abrirla aparezcan los últimos cambios que haya hecho el usuario?
Me explico: tengo varios CheckBox y EditText, quiero que cuando se cierre mi aplicación Android se guarden los valores de estos componentes y que cuando se abra la aplicación Android se muestren. Ya sé que podría hacerlo con SQLite o con ficheros normales pero ¿existe alguna forma mejor? ¿contempla Android este tipo de configuración al estilo de ficheros INI en Windows?
Ultima edición por varios el Mar Jul 26, 2011 9:30 pm, editado 1 vez
Y otra duda relacionada con lo anterior ¿cómo programos eventos de cerrar y abrir aplicación? lo digo porque al crear el proyecto Android en Eclipse no aparecen estos "eventos" y no sé cómo llamarlos.
Efectivamente podrías guardar la configuración y cargarla mediante SQLite o ficheros, aunque no es lo recomendable.
Android incluye lo que llama SharedPreferences, es una clase que te permitirá guardar datos de configuración en un fichero XML y cargarlos (leerlos) en cualquier momento. Este fichero se guardará en la misma carpeta que donde tengas instalada tu aplicación Android y se eliminará si se desinstala la aplicación. Normalmente en la carpeta "shared_prefs".
Te indicamos cómo leer un valor de ese fichero de preferencias en Android:
En los imports, debes añadir:
Código:
import android.content.SharedPreferences;
Un procedimiento para cargar la configuración (leerla del fichero "AjpdSoftMonitorWifi.xml" con SharedPreferences) y actualizar varios componentes (un CheckBox y un EditText):
Nota: el "opUbFic" es un CheckBox y el "txtFichero" es un EditText. Indicamos "Context.MODE_PRIVATE" para que las preferencias sean exclusivas de nuestra aplicación, si queremos que otras aplicaciones puedan acceder a las preferencias de la nuestra podemos usar "Context.MODE_WORLD_READABLE" indicando que las preferencias pueden ser leídas por otras aplicaciones pero sólo modificables por la nuestra y "Context.MODE_WORLD_WRITABLE" indicando que el resto de aplicaciones puede leer y modificar las preferencias de la nuestra.
En cuanto a los métodos para leer y guardar datos en el fichero SharedPreferences, ya has visto que se usan para escribir putBoolean, putString (dependiendo del tipo de datos a guardar) y getString, getBoolean para leer los datos. Existen otros métodos como getFloat, getInt, getLong.
En cuanto a los eventos de abrir y cerrar la aplicación Android, es suficiente con que añadas los siguientes eventos a tu código Java Eclipse (dentro de la clase principal de la aplicación:
Para guardar la configuración cuando se cierre la aplicación Android usaremos el evento "onDestroy":
Código:
//Evento "Cerrar aplicación" guardar los datos en fichero xml
@Override
public void onDestroy()
{
super.onDestroy();
guardarConfiguracion();
}
Para cargar la configuración guardada en el xml cuando se abra la aplicación usaremos:
Código:
//evento "Abrir aplicación" leemos configuración del fichero xml
@Override
protected void onStart()
{
super.onStart();
cargarConfiguracion();
}
Como ves es sencillo, llamamos a los procedimientos de guardar y cargar creados anteriormente en cada evento y ya debería funcionarte. Prueba y nos cuentas.
Publicado:
Mar Jul 26, 2011 9:18 pm
varios Magnífico usuario
Registrado: Oct 10, 2006 Mensajes: 2092
Asunto: [RESUELTO] Guardar configuración xml Android
Anuncios
Muchas gracias por la excelente explicación, ya lo he probado y funciona perfectamente. No sabía que sería tan fácil.
Publicado:
Mar Jul 26, 2011 9:28 pm
alonsojpd Administrador/Moderador
Registrado: Sep 16, 2003 Mensajes: 2687
Asunto: Re: [RESUELTO] Guardar configuración xml Android
Anuncios
varios escribió:
Muchas gracias por la excelente explicación, ya lo he probado y funciona perfectamente. No sabía que sería tan fácil.
En este artículo explicamos la clase SharedPreferences de Android un poco más detalladamente:
Puede publicar nuevos temas en este foro No puede responder a temas en este foro No puede editar sus mensajes en este foro No puede borrar sus mensajes en este foro No puede votar en encuestas en este foro
Visita nuestro nuevo sitio web con programas y contenidos actualizados: Proyecto A