SimpleSQLite

En este ejercicio vamos a implementar una aplicación básica que permita realizar todas las operaciones CRUD (Create, Read, Update,Delete) sobre una tabla de la base de datos. Los valores de esta tabla se podrán ver en un ListView en pantalla y podremos buscar por distintos criterios.

Figura 1: Esquema de la base de datos Empresa.db

Nuestra aplicación deberá dar soporte a las operaciones CRUD sobre una base de datos con el esquema de la figura 1. Deberemos crear la base de datos empresa.db en el directorio privado de la aplicación, utilizando para ello las clases y métodos vistos. Tendremos una única tabla de Personas, donde cada persona tendrá un identificador numérico (0,1,2 …) un Nombre y Apellidos. El campo Id será la clave primaria de la tabla y será un valor entero mayor o igual a cero.

Figura 2. Interfaz de usuario

Se pretende realizar una aplicación con el interfaz de pantalla que viene el la Figura 2. Los campos Id, Nombre y Apellidos son edit Texts utilizados para las operaciones de busqueda, inserción y actualización. También se rellenarán cuando el usuario seleccione un elemento del ListView con los datos correspondientes.

La búsqueda podrá ser realizada con los campos Id, Nombre o Apellidos según se seleccione en los radio Buttons que hay encima del botón buscar. Deberá comprobar que el Id sea numérico mayor o igual a cero (o garantizarlo por las propiedades del edit Text). Si la busqueda es por id, deberá existir ese id en la base de datos para devolver el valor de los campos que se mostrarán en los edit texts. Si la búsqueda es por Nombre o apellidos, se devolverá el primer registro que se encuentre con la cadena introducida en el edit text como parte del Nombre o el apellido.

La inserción deberá comprobar que todos los campos están rellenos, al igual que la actualización.

El borrado se guiará por el campo id, con lo que podremos rellenar sólo dicho campo y pulsar Borrar o bien seleccionar uno de la lista o borrarlo tras haber realizado una búsqueda, con lo que sus edit texts estarán rellenos.

El botón Limpiar borrarán tanto los edit texts como el list view.

El botón Todos obtendrá todos los registros de la tabla y los cargará en el List View.

Todas las operaciones inválidas o búsquedas no encontradas se alertará al usuario con un Toast.

Implementar el ejemplo de SQLite visto en clase

Os dejo el ejercicio resuelto

Mejoras:

Se propone que realicéis una serie de mejoras.

  • Al realizar una búsqueda, que en los edit text aparezca el primero de los encontrados, como hasta ahora, pero que el List View se cargue con todos los registros encontrados en dicha búsqueda.
  • Que las operación de Borrado se pueda realizar también desde un menú contextual que aparecerá al seleccionar (click largo) en un elemento de la Lista.
  • Que la operación de Borrado pregunte al usuario si está seguro de borrar el registro, mostrando los campos del registro a borrar en el cuadro de diálogo.