无法从CursorWindow读取第0行col -1

时间:2014-09-09 05:59:56

标签: android sqlite android-sqlite

我知道这个问题已被多次询问但由于某种原因我无法解决。

我100%确定列名称没有问题。

这是表格定义:

CREATE TABLE IF NOT EXISTS categories (category_id INTEGER, category_name TEXT, PRIMARY KEY(category_id))

这是对列的访问。 可以看出,我先做一个小测试,以确保我有正确的列名。 使用名称I打印到LogCat第一行中列的值。 它完美地运作。然而,当传递给适配器时,我得到了上述错误。

    Cursor mGroupsCursor = _dbHelper.fetchGroup();
getActivity().startManagingCursor(mGroupsCursor);
mGroupsCursor.moveToFirst();

String colName = "category_name";
Log.d("ToratYavneh", "i = " + i + "   category_name = " + mGroupsCursor.getString(mGroupsCursor.getColumnIndex(colName)));

ExpandableListView elv = (ExpandableListView) view.findViewById(R.id.list);

MyExpandableListAdapter adapter = new MyExpandableListAdapter(mGroupsCursor, getActivity(),
    R.layout.rowlayout_category,                     // Your row layout for a group
    R.layout.rowlayout_sub_category,                 // Your row layout for a child
    new String[] { colName },                      // Field(s) to use from group cursor
    new int[] {R.id.category_name },                 // Widget ids to put group data into
    new String[] { "sub_category_name" },           // Field(s) to use from child cursors
    new int[] { R.id.sub_category_name });          // Widget ids to put child data into

elv.setAdapter(adapter);   

我认为可能问题出在孩子身上,但它永远不会到达getChildrenCursor。

以下是光标的代码:

    public Cursor fetchGroup() {
    String query = "SELECT * FROM categories";
    return _database.rawQuery(query, null);
}

0 个答案:

没有答案