¿Cuál es el uso de BaseColumns en Android
¿Cuál es el uso de la implementación de una clase de BaseColumns
en Android?
- Adaptador de cursor y ejemplo sqlite
- SQLite obtener todos los datos y pasarlo a un adaptador
- Expulsión de desencadenamiento de SQLite para eliminar filas
- Android 6.0 y superiores no se borran los datos de sqlite del teléfono después de desinstalar la aplicación
- La mejor manera de agrupar fotos con app: archivos o en la base de datos sqlite?
- Android - La mejor manera de sincronizar SQLite con MySQL
- Almacenamiento y recuperación de datos no ingleses en la base de datos sqlite en android
- Cómo rellenar una base de datos SQLite con datos de un archivo xml?
- Acceso a los datos principales de iOS desde Android
- Cómo comprobar si BLOB es nulo
- Cómo dividir valores separados por comas en SQLite?
- Los datos no se insertan en la base de datos Sqlite en android
- SQLiteOpenHelper onUpgrade () Confusión Android
Esta es una interfaz sencilla que agrega dos campos:
public interface BaseColumns { /** * The unique ID for a row. * <P>Type: INTEGER (long)</P> */ public static final String _ID = "_id"; /** * The count of rows in a directory. * <P>Type: INTEGER</P> */ public static final String _COUNT = "_count"; }
Internamente sqlite bases de datos utilizadas en Android, viene con una columna _id que autoincrements y puede funcionar como una clave primaria. Esto también se correlaciona bien con los ContentProviders
La interfaz BaseColumns
proporciona nombres para las columnas _ID
y _COUNT
muy comunes.
El uso de nombres comunes permite a la plataforma Android (y también a los desarrolladores) abordar de forma unificada cualquier elemento de datos, independientemente de su estructura general (es decir, otras columnas sin ID). La definición de constantes para cadenas de uso común en una interfaz / clase evita la repetición y errores tipográficos en todo el código.
El uso de una columna denominada _id
(el valor constante de BaseColumns._ID
) es requerido por CursorAdapter
, las implementaciones de un ContentProvider
y otros lugares donde se entrega un Cursor
a la plataforma Android para hacer las cosas por usted. Por ejemplo, el adaptador de un ListView
utiliza la columna _ID
para darle el ID único del elemento de la lista que se hace clic en OnItemClickListener.onItemClick()
, sin tener que especificar explícitamente cuál es su columna ID cada vez.
Sea o no implementar interfaces que consistan sólo en constantes o hacer referencia a ellas con su nombre completo, es decir, BaseColumns._ID
es una cuestión de gusto. Yo personalmente prefiero este último, porque es más obvio donde _ID
viene y el primero se siente como un abuso de la herencia.
La interfaz BaseColumn sólo proporciona los nombres de columna _ID y _COUNT. Debe especificar las columnas que las utilizan al construir tablas. Por ejemplo, para crear una columna utilizando el nombre de columna _ID, puede hacer lo siguiente:
public static final String CREATE_TABLE = "CREATE TABLE IF NOT EXISTS " + TABLE_NAME + " (" + _ID + " INTEGER PRIMARY KEY, " + USERNAME + " TEXT NOT NULL, " + PASSWORD + " TEXT NOT NULL, " + EMAIL + " TEXT NOT NULL UNIQUE)";