gpt4 book ai didi

android - 帮助使用 SimpleCursorAdapter 和 Listview

转载 作者:搜寻专家 更新时间:2023-11-01 08:14:33 26 4
gpt4 key购买 nike

我被 SimpleCursorAdapter 困住了,我正在调用我的本地 SQLite 数据库并将其放入一个游标中,然后将其传递给 SimpleCursorAdapter。

出于同样的原因,Log Cat 一直在下面显示此错误。我不知道发生了什么,我已经为此工作了 6 个小时,我不认为 SimpleCursorAdapter 会如此难以理解。

05-28 19:47:27.524: ERROR/AndroidRuntime(9353): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.nyneaxis.android.mpg/com.nyneaxis.android.mpg.userInfo}: java.lang.IllegalArgumentException: column '_id' does not exist


setArray();
rec.open();
Cursor c = rec.getAllVeh();
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.userinfo, c, new String[]{c.getString(1)}, new int[]{R.id.nameTxtL});
this.setListAdapter(adapter);
rec.close();

//数据适配器

public Cursor getAllVeh() {
try{
return db.query(database_table, new String[] { key_rowid, vehicle_name,
year, make, model, style, vin, plate, notes }, null, null,
null, null, null);
}finally{

}
}

好的,我已将代码修改为 rawQuery,但我再次收到此错误:

05-28 22:41:48.876: 错误/AndroidRuntime(1359): java.lang.RuntimeException: 无法启动 Activity ComponentInfo{com.nyneaxis.android.mpg/com.nyneaxis.android.mpg.userInfo}: android.database.CursorIndexOutOfBoundsException: 请求索引 -1,大小为 0

private static final String db_sel = "SELECT id as _id, vehicle_name FROM vehicle";

public Cursor getAllVeh() {
try{
return db.rawQuery(db_sel, null);
/*return db.query(database_table, new String[] { key_rowid, vehicle_name,
year, make, model, style, vin, plate, notes }, null, null,
null, null, null);*/
}finally{

}
}

最佳答案

看我对这个问题的回答Android: column '_id' does not exist problem .它解释了对 _id 列的需求,以及如果您的数据库表没有具有该名称的列,如何为其取别名。

****编辑:**** 要为数据库中包含“唯一标识符”的列添加别名,您需要使用 db.rawQuery(...)而不是 db.query(...) . db.rawQuery(...)方法采用一个 SQL 字符串,它允许您将列名别名为适配器所需的“_id”。示例...

Cursor c = db.rawQuery("SELECT <my_unique_column_name> as _id, vehicle_name, ... FROM vehicles");

在上面,替换<my_unique_column_name>车辆表中包含唯一标识符的列的实际名称。此外,对您为其请求数据的任何其他列使用实际的列名。

关于android - 帮助使用 SimpleCursorAdapter 和 Listview,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6164064/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com