这是一个简单的界面,添加两个字段:
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";
}
内部 sqlite 数据库中都加了 Android 使用 _id
列的 autoincrements 作为主键可以起作用。这还将映射与 ContentProvider
s
BaseColumns 接口提供了名称非常常见的 _ID 和 _COUNT 的列。
使用通用名称无论对其整体结构 (即其他非 ID 列) 以统一的方式可以解决任何数据的项目,Android 平台 (和开发人员以及)。在接口/类中定义的常用的字符串常量可以避免一般和各地代码的拼写错误。
使用列命名为 _id (的常量值 BaseColumns._ID ) 所必需的 CursorAdapter ,实现 ContentProvider 和其他地方送交给 Cursor 的 Android 平台,为你做的事情。例如,该适配器的 ListView 使用 _ID 给你的唯一 ID 的列表项的列中单击 OnItemClickListener.onItemClick() ,而无需显式指定您的 ID 列是什么每次。
到底还是不 实现 接口只包含常量或 参考他们与他们的全名,即 BaseColumns._ID 是一个味道的问题。我个人更倾向于后者,因为它是更明显的位置 _ID 来自与前者感觉像是滥用的继承。