contacto[arroba]digitallearning.es

Proyecto ejemplo de App Android con bbdd SQLite

Post Series: Gestión de datos

Tras explicar las operaciones CRUD en un sistema de base de datos SQLite, vamos a desarrollar una sencilla Aplicación con Android Studio que nos muestre de forma práctica su implementación.

Operaciones CRUD: son las operaciones básicas en un sistema de persistencia de datos, es decir: crear/insertar, leer/consultar, actualizar o borrar datos. Se les suele conocer por su acrónimo en inglés CRUD (create, read, update y delete).

Para ello, crearemos un proyecto con Android Studio donde se gestionarán los registros de una base de datos SQLite desde un sencillo formulario.

La aplicación permitirá dar de alta, consultar y borrar comentarios asociados a distintos nombres de usuarios. Podremos elegir cada comentario de una lista que crearemos utilizando el componente gráfico Spinner.

En la parte derecha puedes ver su funcionamiento.

Este proyecto, como es habitual, lo describiremos en dos publicaciones, ésta, donde podrás además descargar el proyecto y una posterior en formato video con explicaciones detalladas del código.

Estructura del Proyecto

El proyecto constara de los siguientes elementos:

  • activity_main: formado por un layout de tipo LinearLayout, en el que distribuiremos los distintos elementos gráficos.
  • MainActivity: Activity principal de la aplicación, que implementara la lógica de funcionamiento de la aplicación, incluyendo los controladores de eventos de los elementos de la interfaz.
  • Comentario: clase java sencilla que nos servirá para representar los elementos que almacenamos en la base de datos
  • MyOpenHelper: implementación de SQLiteOpenHelper basada en la que ya vimos en una publicación anterior y que ampliaremos con varias funciones auxiliares para simplificar el código de MainActivity.

En la siguiente imagen, se podrá apreciar cómo quedaría finalmente la estructura de elementos que intervienen en el proyecto (vista Android en el IDE Android Studio):
Estructura del proyecto

Descripción del código fuente

Vamos a analizar el código fuente de los distintos componentes del proyecto.

Para empezar mostramos la interfaz de usuario definida en el fichero activity_main.xml:

Interfaz App base de datos SQLiteComo vemos esta compuesta por un panel superior que nos permitirá crear nuevos comentarios, un Spinner en el que se mostrarán los comentarios existentes y mediante el cual podremos seleccionar uno de ellos, y finalmente un panel inferior que nos mostrará los datos del comentario seleccionado. Cada zona tiene además su botón correspondiente para la acción a realizar.

Mostramos a continuación el contenido del fichero de layout xml:

Vamos a analizar a continuación la clase Comentario.

La clase cuenta con los mismos atributos que representan un comentario en la base de datos:

El constructor de la clase nos permite crear e inicializar los atributos de un comentario:

La clase toString sera necesaria para mostrar los comentarios en el Spinner, en nuestro caso sólo mostraremos el nombre para seleccionar:

Para terminar disponemos de 3 métodos para acceder a cada uno de los atributos de la clase:

Vamos a continuar describiendo el contenido de la clase MyOpenHelper.

Partiremos de los mismos elementos que ya mostramos en el apartado 5.2 de este tema, en el que vimos el código que creaba la base de datos en el dispositivo:

A este código inicial añadiremos dos funciones para insertar y eliminar comentarios, que si nos fijamos simplemente incluyen el código de inserción y borrado que vimos en su momento, pero ejecutado a partir de unos parámetros que enviaremos desde la interfaz de usuario.

Finalmente añadiremos una función que ejecutará un select tal y como lo vimos en su momento, y a continuación recorrerá los distintos resultados creando objetos de la clase Comentario y almacenándolos en un array.

Finalmente la clase MainActivity contiene la lógica principal de la aplicación que detallamos a continuación:

En primer lugar vemos que la clase implementa las interfaces correspondientes a la gestión de eventos de los botones y el Spinner (un poco mas abajo veremos cómo se implementan).
El código continua con la declaración de los elementos gráficos, así como del array de comentarios y el objeto Comentario que utilizaremos para acceder al comentario seleccionado en el Spinner.

En el método onCreate() inicializamos como siempre los elementos gráficos y los asociamos a su manejador de eventos:

También iniciamos el controlador de la base de datos, obtenemos la lista de comentarios y creamos el Adapter que nos servirá para mostrar los comentarios del array como elementos seleccionables en el Spinner:

En el método onClick() implementamos las funciones de cada botón, se han incluido comentarios en el código para explicar cada paso de la inserción, selección y borrado.

Finalmente la función onItemSelected() se ejecutará cuando seleccionemos en el spinner un nuevo comentario. Como podemos observar en ella, simplemente comprobaremos que hay comentarios en la lista, y si los hay, asociaremos el comentario seleccionado al objeto c (de tipo Comentario) que representa el comentario actual.

Descarga del proyecto

Para descargar el código de esta aplicación pulsa aquí:

Descargar