0

我在我的 DataBaseHelper 类中编写了这个方法:

public Cursor fetchData(String tableName) {
    return myDataBase.rawQuery("SELECT rowid as _id, title FROM "+tableName, null);
}

并在我的一项活动中编写了这段代码:

    try {
        Cursor cursor = myDbHelper.fetchData("tableName");
        String[] columns = {cursor.getColumnName(0), cursor.getColumnName(1)}; 
        int[] columnsLayouts = {R.id.layout1, R.id.layout2}; 
        SimpleCursorAdapter ca = new SimpleCursorAdapter
                            (this.getBaseContext(),
                            android.R.id.list, cursor,columns , columnsLayouts);
        lv.setAdapter(ca); //lv is my ListView with id="@android:id/list"
        txt.setText("Done ! : "); //Process is Ok

    } catch (Exception e){
        txt.setText("Error"); //Error happens
    }

代码编译正常。然而,当到达这条线时,它却被强行关闭了lv.setAdapter(ca);

有问题吗?我做错了吗?

-

更新:这是 logCat 错误(在我过滤它们之后android.view:)

LogCat 屏幕

4

1 回答 1

1

尝试为列表视图中的项目充气时,Android 会崩溃。构造函数的第二个参数是布局——

layout - 定义此列表项的视图的布局文件的资源标识符。布局文件应该至少包括那些在“to”中定义的命名视图

您正在传递 android.R.id.list,这在我看来就像您传递的是列表 ID 而不是项目的 ID。

于 2011-07-06T14:38:19.260 回答