我想我已经检查了关于这个问题的所有以前的帖子,但似乎没有一个对我有帮助......
基本的东西 - 尝试使用绑定到我的数据库的游标适配器,但我得到:
java.lang.IllegalArgumentException: column '_id' does not exist
我的架构定义了该列(尽管我确实有 2 个表,两者都具有相同的名称 - 这是一个问题吗?),如下所示:
public static abstract class dbMain implements BaseColumns {
public static final String TABLE_NAME = "mpgMain";
public static final String ENTRY_ID = "_id";
public static final String VEHICLE_NAME = "v_name";
}
public static abstract class dbHistory implements BaseColumns {
public static final String TABLE_NAME = "mpgHistory";
public static final String ENTRY_ID = "_id";
public static final String TRIP_DATE = "date";
}
在其他帖子中,我已将 _id 放入光标投影中:
String[] projection = {dbMain.ENTRY_ID, dbMain.VEHICLE_NAME};
Cursor mpgCur = mpgDB.query(dbMain.TABLE_NAME, projection, null, null, null, null, null);
...但是我的堆栈跟踪在查询行上给出了同样的错误。如果我从投影中删除 ENTRY_ID,则会出现相同的错误,但在后面的行中实例化了适配器:
String[] fromColumns = {dbMain.VEHICLE_NAME};
int[] toViews = {R.id.displayVehicle};
SimpleCursorAdapter vehAdapter = new SimpleCursorAdapter(this,
R.layout.activity_first_screen, mpgCur, fromColumns, toViews, 0); <--- HERE
我还尝试在 CREATE TABLE 命令中的 _id 字段之前放置一个空格:
private static final String SQL_CREATE_MAIN_TABLE =
"CREATE TABLE " + dbMain.TABLE_NAME + " ( " +
dbMain.ENTRY_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
任何想法都非常感谢...