Utilización archivos XML como recursos
En nuestro proyecto tenemos una carpeta llamada “res” que contiene los archivos de recursos de la aplicación. En esta puede haber tanto imágenes,sonidos o textos(XML). Estos últimos se pueden dividir en diferentes carpetas
según el lenguaje. Estas tendrán un nombre específico para que la aplicación cargue la adecuada según el idioma del dispositivo.
Para explicar esto mejor, vamos a utilizar nuestra aplicación Examen SCJP 6.0.
Contenido de la carpeta de Recursos
Formato XML
El fichero de preguntas.xml tienen el siguiente formato:
Todos los ficheros XML de recursos deberán empezar por la etiqueta “resources”.
Las etiquetas finales, sin más nodos hijos, puede tener cualquier nombre. Pero será necesario asignarles un identificador. En nuestro caso cada item es una pregunta.
Si queremos agrupar nodos finales es necesario utilizar la etiqueta “string-array”. Estas también deberán tener un id. Nosotros hemos agrupado las preguntas en temas, es decir, cada “string-array” corresponde a un tema.
Si el texto dentro de los nodos tiene caracteres especiales será necesario poner la etiqueta ”<![CDATA[“ “]]>”.
Utilización de los recursos
Para poder obtener las preguntas de un tema:
1.- Obtenemos la posición que corresponde a la array con id que queremos obtener.
int id = getResources().getIdentifier(name, “array”, getPackageName());
El variable “name” contiene el id del tema, por ejemplo: “p00″.
Además, es necesario indicar el tipo, en nuestro caso “array” y el paquete donde se encuentra, que lo obtenemos con el método “getPackageName()”.
2.- Una vez tenemos la posición de la array, obtenemos las preguntas:
String[] preguntesStrings = getResources().getStringArray(id);
Si quisiéramos obtener un item fuera de un array, por ejemplo de un archivo que contiene todas las strings de nuestra aplicación, utilizamos el siguiente método:
String textBtnAceptar = getResources().getString(R.string.btnAceptar);
Crear un fichero XML
También podemos crear un fichero XML desde nuestra aplicación, donde almacenar datos que en otro momento queramos recuperar. Para ello es necesario crear el documento XML nodo a nodo y poniéndole los datos. En nuestra aplicación utilizamos esto para almacenar los datos de un test realizado, si no está finalizado, para poder continuar en otro momento y si lo está para poder ver el resultado.
El siguiente código muestra la creación del XML de un tema:
Lectura de un fichero XML
Una vez tenemos creado el archivo XML, podemos leerlo de la siguiente manera: