contacto[arroba]digitallearning.es

Proyecto Android: Content Provider personalizado (I)

Post Series: Content Providers personalizados

En las próximas publicaciones vamos desarrollar dos proyectos Android para ver de forma práctica la implementación de un Content Provider personalizado.

En el primero, que publicamos en este tutorial, crearemos un Content Provider personalizado, que implementa una base de datos SQLite para insertar datos de clientes. En el segundo, solicitaremos los datos de dicho Content Provider, utilizando la clase ContentResolver.

Puedes descargar el código completo al final de cada tutorial,

Elementos del proyecto Android Content Provider personalizado

Enumeramos en primer lugar los elementos necesarios para el desarrollo del primer proyecto denominado CarteraClientes

  • Clase MainActivity, que herede de la clase base Activity, encargada de mostrar la lógica de inserción de registros (menú principal de la aplicación).
  • Clase EstructuraDatos, que implementa la interfaz BaseColumns, y permite declarar e inicializar las variables que definen el nombre de la tabla y los campos creados.
  • Clase BaseDatos, que herede de la clase base SQLiteOpenHelper, encargada de sobrescribir los métodos para la creación, actualización y consulta a una Base de Datos.
  • Clase CompartirDatos, que herede de la clase base ContentProvider, encargada de establecer los mecanismos necesarios para intercambiar información con el resto de aplicaciones.
  • Layout activity_main.xml formado por tres componentes de tipos EditText, que recogerán los datos introducidos por el usuario, y un componente de tipo Button encargado de enviar los datos introducidos.

Estructura del proyecto Android

Vemos aquí la estructura del proyecto CarteraClientes:

Estructura Proyecto Content Provider personalizado en Android

Documentación código fuente del proyecto

Presentamos las diferentes clases y el fichero de layout que componen el Proyecto CarteraClientes. Como siempre, puedes descargarte todo el código al final de este tutorial

CarteraClientes\src\com\academiaandroid\carteraclientes\MainActivity.java

Pantalla de la Main Activity, Proyecto Android CarteraClientes

1.Se implementa la clase MainActivity, que hereda de la clase base Activity, encargada de mostrar la lógica de inserción de registros:

2.Se enlazan los componentes con sus recursos a nivel de layout:

3.Se define el evento onClick guardarDatos() para insertar los datos introducidos en los campos EditText:

CarteraClientes\src\com\academiaandroid\carteraclientes\EstructuraDatos.java

  1. Se define una clase llamada EstructuraDatos, que implementa la interfaz BaseColumns, que permite declarar e inicializar las variables que definen el nombre de la tabla y los campos creados:

CarteraClientes\src\com\academiaandroid\carteraclientes\CompartirDatos.java

1.Se crea una nueva clase llamada CompartirDatos, que heredará de la clase base ContentProvider, encargada de establecer los mecanismos necesarios para intercambiar información con el resto de aplicaciones:

2.Se declara e inicializa una constante de la clase Uri, que recogerá la URI que identificará de manera única al Content Provider:

3.Se declara e inicializa un array de Strings, que contendrá todos los campos de la tabla creada:

4.Se sobrescribe el método delete(), que procesará las solicitudes de eliminación de datos, recibiendo entre sus parámetros la URI del Content Provider, y los argumentos de selección y orden definidos. Este método devuelve el número de filas afectadas:

5.Se sobrescribe el método insert(), que posibilita la inserción de datos, devolviendo la URI que hace referencia al registro introducido:

6.Se sobrescribe el método query(), que permite consultar los datos almacenados. Este método devuelve un objeto Cursor con los datos solicitados al Content Provider:

CarteraClientes\src\com\academiaandroid\carteraclientes\BaseDatos.java

1.Se implementa una nueva clase llamada BaseDatos, que hereda de la clase base SQLiteOpenHelper, encargada de sobrescribir los métodos para la creación, actualización y consulta a una Base de Datos:

2.Se sobrescriben los métodos onCreate() y onUpgrade(), encargados de recibir la consulta Transact-SQL para crear la Tabla, y actualización de dicha tabla:

CarteraClientes\res\layout\activity_main.xml

Layout Main Activity proyecto CarteraClientes

  1. A nivel de layout (activity_main.xml), se añaden tres componentes de tipos EditText, que recogerán los datos introducidos por el usuario, para posteriormente enviarlos al pulsar el componente de tipo Button definido:

CarteraClientes\AndroidManifest.xml

  1. Por último, se debe definir dentro del AndroidManifest.xml, dentro de la etiqueta <application>, se añadirá el provider, como se muestra a continuación:

 

Descarga del código

Descargar

En el próximo tutorial veremos el 2º proyecto para acceder a los datos de este Content Provider que hemos creado.

 

This Post Has 2 Comments

Comments are closed.