02-23 20:16:17.499:E / AndroidRuntime(25817):java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.makkosarka / com.example.makkosarka.Table.Table}: java.lang.RuntimeException:无法启动活动ComponentInfo {com.example.makkosarka / com.example.makkosarka.Table.Liga1}:java.lang.IllegalArgumentException:列'_id'不存在
以下是尝试从此表中选择记录而不是显示的方法 在listview中
private void populateListFromDB(){
Cursor cursor = myDB.getAllRows("1");
startManagingCursor(cursor);
String[] columnFromTable = new String[]
{DBadapter.KEY_HOSTID, DBadapter.GUESTID, DBadapter.KEY_HSCORE , DBadapter.KEY_GSCORE };
int[] toLayoutFild = new int[] {R.id.txtview_name, R.id.txtview_gameno, R.id.txtview_won, R.id.txtview_lost, };
SimpleCursorAdapter myCursorAdapter = new SimpleCursorAdapter(this, R.layout.rowlayout,
cursor, columnFromTable, toLayoutFild);
ListView mylistview = (ListView) findViewById(R.id.listview_table);
mylistview.setAdapter(myCursorAdapter);
}
这是在Adapter类中,我甚至没有选择“_id”(KEY_ROWID)列
public static final String[] ALL_COLUMNS = new String[] {KEY_HOSTID, KEY_GUESTID,
KEY_HSCORE, KEY_GSCORE};
public Cursor getAllRows(String league) {
Cursor c = db.query(true, DUELS_TABLE, ALL_COLUMNS,
null, null, null, null, null, null);
if (c != null) {
c.moveToFirst();
}
return c;
}
该错误意味着该表可能根本没有创建吗? 我有两个表,我使用相同的方法为另一个完美的工作选择记录,但为此,它显示了此问题顶部列出的错误
答案 0 :(得分:1)
这是在Adapter类中,我甚至没有选择“_id”(KEY_ROWID)列
CursorAdapter
及其子类要求 Cursor
有一个名为_id
的列。如果您有自己的,请使用自己的,或者切换到rawQuery()
,以便在列表列表中包含ROWID AS _id
以便返回。