El tutor de nuestro curso online de Desarrollo de Aplicaciones para Android, Víctor Ramírez Las,…
Creación de un Content Provider personalizado
1.
Creación de un Content Provider personalizado
En tutoriales anteriores, ya presentamos a los Content Provider y trabajamos con varios ya definidos que proporciona Android. En esta nueva serie, vamos a ver otra opción, que es la implementación de Content Providers personalizados.
Android nos ofrece la posibilidad de crear nuestros propios proveedores de contenidos, y para ello nos proporciona el package android.content , dónde se encuentra la clase ContentProvider, que será la encargada de almacenar todos los datos a los que se accederá desde cualquier aplicación. A cada elemento Content Provider se le asocia una URI única, que lo representa y a través de la cual el resto de componentes de otras aplicaciones acceden a él.
URI (Uniform Resource Identificator). El denominado «identificador de recursos uniforme» está formado por una cadena de caracteres que identifica de manera inequívoca los recursos de una red.
En el siguiente diagrama vemos la referencia a un Content Provider a través de una URI:
A continuación, vamos a ver los pasos necesarios para la creación de un Content Provider propio:
- Se debe definir una clase que herede de la clase base ContentProvider y que hemos denominado en este caso InformacionComún:
12public class InformacionComun extends ContentProvider { - Se declara e inicializa una constante de la clase Uri, que recogerá la URI que identificará de manera única el Content Provider (revisar imagen con ejemplo de estructura URI):
12public static final Uri CONTENT_URI = Uri.parse("content://com.academiaandroid.provider/clientes"); - Indicar el tipo de almacenamiento que se va a establecer. Este almacenamiento puede ser desde una base de datos SQLite a un archivo local.
- Declarar e inicializar un array de Strings, con las columnas que se desean obtener (ejemplo para base de datos SQLte):
12345public static String[] columnas = new String[]{"_id","cliente","telefono","descripcion"}; - Se sobrescribirán los métodos que implementa la clase ContentProvider:
1234567891011121314151617181920212223242526272829303132@Overridepublic int delete(Uri uri, String selection, String[] selectionArgs) {return 0;}@Overridepublic String getType(Uri uri) {return null;}@Overridepublic Uri insert(Uri uri, ContentValues values) {return null;}@Overridepublic boolean onCreate() {return false;}@Overridepublic Cursor query(Uri uri, String[] projection, String selection,String[] selectionArgs, String sortOrder) {return null;}@Overridepublic int update(Uri arg0, ContentValues arg1, String arg2, String[] arg3){return 0;} - Por último, dentro del AndroidManifest.xml, y más concretamente dentro de la etiqueta
<application>
, se añadirá el provider, como se muestra a continuación (el atributoexported
se establece en true para habilitar el envío de mensajes de fuentes externas a la aplicación):
1234567891011<application>[...]<providerandroid:name="com.academiaandroid.provider.InformacionComun"android:authorities="com.academiaandroid.provider.InformacionComun"android:exported="true"><provider/>[...]</application>
En el siguiente tutorial, veremos como usar un Content Provider personalizado que hayamos creado.
Esta entrada tiene 2 comentarios
Los comentarios están cerrados.
[…] 1.Creación de un Content Provider personalizado […]
[…] 1.Creación de un Content Provider personalizado […]