Documentos de Académico
Documentos de Profesional
Documentos de Cultura
190
Este mtodo recibe como parmetro el modo de acceso que se quiere asignar
al archivo tras su creacin. Los valores de este parmetro son:
Context.MODE_PRIVATE: modo privado. Es el modo por defecto. El archivo slo puede leerse desde la aplicacin en curso, o una aplicacin que
comparta el mismo identificador de usuario.
Context.MODE_WORLD_READABLE: las dems aplicaciones pueden leer el
archivo.
Ejemplo
SharedPreferences prefs =
getSharedPreferences("nombreArchivoPrefs1.xml",
Context.MODE_PRIVATE);
2.2 Lectura
Los datos contenidos en un archivo de preferencias se almacenan bajo la forma
de pares clave-valor. Tales asociaciones estn compuestas:
por una clave que es una cadena de caracteres de tipo String.
por un valor de tipo primitivo: boolean (booleano), float (nmero de
coma flotante), int o long (enteros) o String (cadena de caracteres).
Para leer los datos contenidos en un archivo de preferencias se utiliza el objeto
de tipo SharedPreferences recuperado anteriormente. Se invoca a continuacin a ciertos accesores que permiten leer individualmente un dato segn
su tipo.
Sintaxis
public abstract boolean getBoolean (String key, boolean defValue)
public abstract float getFloat (String key, float defValue)
public abstract int getInt (String key, int defValue)
191
Android
192
Ejemplo
Map<String, ?> valores = prefs.getAll();
Boolean modoWifi = (Boolean)valores.get("modoWifi");
Ejemplo
2.3 Escritura
La escritura de datos en un archivo de preferencias se realiza a travs de un
objeto de tipo SharedPreferences.Editor. Este objeto lo devuelve el
mtodo edit invocado sobre el objeto de tipo SharedPreferences
recuperado anteriormente.
if (prefs.contains("modoWifi")) {
procesamiento();
}
193
Ejemplo
SharedPreferences.Editor editor = prefs.edit();
El objeto editor permite especificar nuevos datos o modificar los datos existentes borrndolos con los nuevos. Estos mtodos permiten escribir individualmente un par clave-valor. De forma similar a los mtodos de lectura,
existe un mtodo por cada tipo primitivo. Estos mtodos reciben como parmetro el nombre de la clave y el valor del dato.
Sintaxis
public abstract SharedPreferences.Editor
boolean value)
public abstract SharedPreferences.Editor
float value)
public abstract SharedPreferences.Editor
int value)
public abstract SharedPreferences.Editor
long value)
public abstract SharedPreferences.Editor
String value)
Ejemplo
editor.putBoolean("modoWifi", true);
editor.putInt("contador", 42);
editor.putString("comentario", "Esto es un comentario");
Ejemplo
editor.commit();
Android
194
2.4 Borrado
El borrado de los datos contenidos en un archivo de preferencias se hace utilizando el objeto editor de tipo SharedPreferences.Editor igual que
para escribir los datos.
El mtodo remove del objeto editor permite suprimir un par clave-valor. Se
pasa el nombre de la clave como parmetro.
Sintaxis
public abstract SharedPreferences.Editor remove (String key)
Ejemplo
editor.remove("modoWifi");
El mtodo clear permite borrar todos los datos, es decir, todos los pares
clave-valor.
Sintaxis
public abstract SharedPreferences.Editor clear ()
Ejemplo
Como ocurre con la escritura, es necesario invocar al mtodo commit para registrar los cambios.
Tambin es posible encadenar las modificaciones, puesto que los mtodos del
objeto editor devuelven este mismo objeto.
Ejemplo
editor.clear().putBoolean("modoWifi", modoWifi).commit();
editor.clear();
3. Archivos
Como acabamos de ver en la seccin anterior, los archivos de preferencias son
la solucin ideal para salvaguardar valores de tipos primitivos de manera
simple. Pero si lo que se quiere es almacenar datos ms complejos o datos brutos sin un formato adaptado al formato XML como, por ejemplo, la copia de
una imagen con formato PNG, esta solucin no es adecuada.
Necesitamos poder crear, escribir y leer archivos directamente.
Android permite guardar archivos en el almacenamiento interno del dispositivo o en un almacenamiento externo como, por ejemplo, una tarjeta SD. Proporciona tambin las API para guardar archivos temporales o archivos de
cach en ubicaciones definidas.
Vamos, por tanto, a ver en primer lugar la gestin de archivos en el almacenamiento interno, y en segundo lugar sobre un almacenamiento externo. Por ltimo, veremos la gestin de los archivos temporales.
195