NOVEDADES IMPORTANTES

Acceso a todos los contenidos

Hace unos meses decidimos suspender nuestra actividad de formación online en Digital Learning SL (propietaria de esta web).

Desde entones hemos mantenido operativos nuestra plataforma de teleformación y webs de contenidos Academia Android y Digital Learning, habilitando un acceso libre y gratuito a todos estos recursos, incluyendo cursos y contenidos Premium que antes requerían un registro y pago previo, lo que ha propiciado un volumen de visitas constante de usuarios que consultan esta formación.

Venta-traspaso de los contenidos

Creemos que estas webs por sus contenidos, posicionamiento SEO y atracción de tráfico (junto a sus cuentas en redes sociales asociadas, incluyendo Twitter y Facebook de nuestro curso de Community Manager) pueden ser una oportunidad para emprendedores o compañías de diversos ámbitos (formación, marketing y publicación online, desarrollo software,…) que quieran:

  • Captar usuarios, alumnos o clientes para sus proyectos, productos y servicios.
  • Comercializar los contenidos bajo múltiples fórmulas: venta de publicidad, modelos freemium o de pago, suscripciones…
  • Crear un nuevo proyecto a partir de esta infraestructura de recursos.

Si tú o tú empresa estáis interesados en adquirirlos, ofrecemos su traspaso en propiedad exclusiva. Puedes contactar conmigo en «contacto@digitallearning.es» (por favor entiende que los correos que no vengan suficientemente identificados no vamos a atenderlos). Gracias.

Manuel Cabello (Socio-Director de Digital Learning/Academia Android)

Este es el número de tutoriales publicados:

Pincha en los textos de los contadores de Tutoriales publicados, Premium o Series de tutoriales para tener un detalle de las publicaciones que comprenden.

Desde hace unos meses, todos los contenidos, incluidos los Premium, son accesibles libre y gratuitamente.

  • Premium
  • Acceso libre
130
Acceso libre
126
Premium

Algunos datos sobre los contenidos que hemos publicado hasta la fecha:

74
Videos
61
Proyectos descargables
contacto[arroba]digitallearning.es

Proyecto tratamiento XML en Android utilizando DOM (I)

Post Series: Tratamiento de XML con SAX y DOM

Siguiendo con el tratamiento de ficheros XML en Android, vamos a desarrollar una Aplicación que nos servirá como ejemplo práctico de gestión y ‘parseo’ de un documento XML utilizando el método DOM.

Al proyecto Android lo denominaremos «ParsearXML» y nos permitirá crear un sistema de ficheros XML que contienen los registros de clientes de una empresa, pudiendo realizar diferentes operaciones sobre ellos.

Visión general de la App Android «ParsearXML»

Aunque podrás ver esta Aplicación en funcionamiento en un próximo video de esta serie, mostramos aquí las dos pantallas que la componen, además de la splash de inicio. Como es habitual, el diseño es esquemático ya que nos centramos en la funcionalidad que tiene la App con las diferentes opciones para crear o cargar un XML:
Pantalla App Android: crear XML
Pantalla carga y parseo XML App Android

Elementos del Proyecto Android

Comenzaremos  enumerando los elementos necesarios para el desarrollo de este proyecto denominado «ParsearXML»:

  • Clase SplashScreen, que hereda de la clase base Activity, encargada de lanzar una pantalla de presentación al iniciar la aplicación, proporcionando una mayor inmersión del usuario en la aplicación.
  • Clase MainActivity, que hereda de la clase base Activity, y que permitirá introducir la información del cliente en un nodo del documento XML.
  • Clase TareasXML, que herede de la clase base ListActivity, encargada de mostrar el contenido del documento almacenado en memoria interna del dispositivo, seleccionado por el usuario.
  • Clase Adaptador, que hereda de la clase base BaseAdapter, encargado de construir la vista de cada uno de los ítem que se mostrará en el componente ListView.
  • Clase Cliente, que definirá el constructor con los argumentos para la creación de un nuevo objeto Cliente, además de los métodos de acceso getter y setter para las propiedades privadas.
  • Clase ParsearDOM, cuya tarea principal será la de parsear el documento XML, para a continuación construir en memoria un nuevo documento con toda la información.
  • Clase TareaAsincronaListado, que hereda de la clase AsyncTask, y que permitirá cargar en segundo plano toda la información del documento XML en memoria, para posteriormente mostrarla por pantalla.
  • Layout activity_splash_screen.xml, formado por una componente de tipo ImageView, que mostrará el logotipo de la aplicación.
  • Layout activity_main.xml, formado por cuatro controles de tipo EditText que permitirán al usuario introducir los datos del cliente, y tres controles de tipo Button, encargados de omitir, eliminar o crear una nueva ficha de cliente.
  • Layout activity_tareasxml.xml, formado por un control ListView, que mostrará el contenido del archivo XML seleccionado por el usuario, un control Spinner con los documentos almacenados en la memoria interna del dispositivo , y tres controles de tipo Button para cargar el XML seleccionado, filtrar el resultado que se muestra por el valor introducido en el control EditText, y actualizar la información en pantalla.
  • Layout item.xml, que definirá la vista personalizada de cada ítem que construya el control ListView.

Estructura del proyecto

Puedes ver la estructura del proyecto en la siguiente imagen:

Estructura Proyecto App Android XML

Documentación código fuente

Detallamos las diferentes clases y métodos que definimos en el proyecto, así como los ficheros de layout y controles que implementan. Hemos dividido la publicación del proyecto en dos partes. En esta primera veremos en detalle las clases:

  • MainActivity.ja
  • TareasXML.java

y en la siguiente publicación, completaremos con el resto de clases y ficheros de layout. Allí también podrás descargar (usuarios Premium) todo el código del proyecto.

ParsearXML\app\src\main\java\com\academiaandroid\parsearxml\MainActivity.java

Se define la clase MainActivity, que hereda de la clase base Activity, y que permite crear un archivo XML con una estructura de etiquetas concreta, y añadir el contenido introducido por el usuario:

Posteriormente, dentro del método onCreate(), se define toda la lógica de eventos de usuario, desde la que se podrá crear una nueva ficha de cliente, a omitir cualquier operación y pasar a la siguiente Activity. Además se referencian los diferentes tipos de variables (EditText, TextView y Button) con sus controles a nivel de layout:

Como parte fundamental de esta clase, nos encontramos con el método crearXML(), que recibirá como argumentos de entradas los datos introducidos por el usuario por pantalla (además de la fecha de creación del documento), y que construye la lógica de nodos del documento XML:

Ya comentamos en la publicación anterior que otra forma muy válida para el parseo de un documento XML es el método XmlPull, de grandes similitudes al método StAX (Streaming API for XML), y por extensión al modelo SAX, ya que realiza una lectura secuencial a partir de los eventos y acciones definidas. En este método crearXML()  hacemos uso de la interfaz XmlSerializer del paquete org.xmlpull.v1 para la creación de un documento XML (documentación de las diferentes interfaces y métodos que implementa esta API).

Se declara una instancia XmlSerializer, que permitirá serializar la información del documento XML:
Se escribe la declaración <?xml version=’1.0′ con codificación utf-8:
Se establecen las etiquetas de inicio del nodo raíz y del nodo hijo Cliente:
A continuación, se establecen las etiquetas de inicio y fin de los nodos finales, además del texto:
Se definen las etiquetas finales del nodo hijo Cliente y del nodo raíz:
Se indica el final del documento y cierre del buffer de escritura:

ParsearXML\app\src\main\java\com\academiaandroid\parsearxml\TareasXML.java

Se define una nueva clase llamada TareasXML, que hereda de la clase base ListActivity, encargada de mostrar los documentos XML creados y leer/filtrar el documento seleccionado en un control ListView:

Dentro del método onCreate(), se asocian las variables de tipo EditText, ListView, Spinner y Button con sus recursos a nivel de layout. Además se define la lógica de selección de un documento XML para ser leído y mostrado a través del control ListView:

Se comprueba que el método listarDoc() no devuelva null para llenar el control Spinner:

El método buscarEnDocumento() posibilita filtrar el resultado del contenido del documento seleccionado por el usuario. Esta característica es de gran utilidad para documentos extensos:

Se obtiene los elementos por Cliente:

Se inicializa una variable de tipo List que almacenará objetos de tipo Cliente:

Se comprueba por cada iteración si el valor de búsqueda introducido por el usuario coincide con cualquiera de los campos de la ficha del cliente:

En la siguiente publicación veremos las clases:

  • TareaAsincronaListado.java
  • ParsearDOM.java

y los diferentes ficheros de layout:

  • activity_main.xml
  • activity_tareasxml.xml
  • item.xml

 


 

This Post Has One Comment

Comments are closed.