在一些有线问题上需要帮助。我有一个sqlite表项目如下
item_id item_name
1 first
2 second
3 third
等等
这段代码将item_id和item_name完全插入到数组中。但是当我通过异常
将它分配给CustomCursorAdapter时“列'第一个'不存在”
请帮助我成为Android的新手。
c = db.rawQuery("select item_id as _id, item_name from items", null);
int i = 0;
c.moveToFirst();
do {
from[i] = c.getString(1);
to[i] = c.getInt(0);
Log.i("item ", to[i] + " " + from[i]);
i++;
} while (c.moveToNext());
try {
CustomCursorAdapter ca = new CustomCursorAdapter(this,
android.R.layout.simple_list_item_1, c, from, to);
getListView().setAdapter(ca);
} catch (Exception e) {
Log.e("Ex ", e.getMessage()); // exception : column 'first' does not exists.
}
答案 0 :(得分:2)
这是因为您正在设置from[0] = c.getString(1)
。
getString()
从零开始,因此在您的情况下返回"first"
。然后,您将from
作为类的from
参数传递(我猜,扩展SimpleCursorAdapter),然后当适配器尝试映射此列名时,您将收到此错误。在这种情况下,from
表示包含要绑定到UI的数据的列名列表,由to
表示。