Android SQLite列值不存在问题

时间:2012-03-13 04:03:28

标签: android sqlite custom-cursor

在一些有线问题上需要帮助。我有一个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.
        }

1 个答案:

答案 0 :(得分:2)

这是因为您正在设置from[0] = c.getString(1)

getString() 从零开始,因此在您的情况下返回"first"。然后,您将from作为类的from参数传递(我猜,扩展SimpleCursorAdapter),然后当适配器尝试映射此列名时,您将收到此错误。在这种情况下,from表示包含要绑定到UI的数据的列名列表,由to表示。