¿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?

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)"; 
  • Error de actualización de filestream de Android Sqlite singleton db
  • Atascado con diseño de SQL android utilizando SQLite y Group By
  • Android: copia la base de datos de la carpeta de activos, pero sólo obtiene un archivo vacío
  • Cómo almacenar datos desde un archivo XML a una base de datos SQLite en android
  • ¿Una base de datos SQLite de Android persiste después de apagar el dispositivo?
  • sqlite Android - cómo obtener el valor de col / fila específica
  • Preguntas sobre el uso de Android Backup Service con una base de datos SQLite
  • ¿Puede Universal loader de imágenes para Android trabajar con imágenes de sqlite db?
  • SQLite Android - parámetros nombrados
  • ORM en Android SQLite y esquema de base de datos
  • Uso de la palabra clave IN en android sqlite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.