Android对数据库表有一个约定。就是每张表都应该至少有_id这列。
listview在适配cursor的时候,会默认的获取 _id 这列的值,如果你建的表没有 _id这列的话,自然也就报错了。
下面是CursorAdapter.java的类注释 以及 构造方法的代码
/**
* Adapter that exposes data from a {@link android.database.Cursor Cursor} to a
* {@link android.widget.ListView ListView} widget. The Cursor must include
* a column named "_id" or this class will not work.
*/