Android SimpleCursorAdapter问题

时间:2011-07-06 12:05:12

标签: android cursor simplecursoradapter

我在My 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 screen

1 个答案:

答案 0 :(得分:1)

尝试对列表视图中的项目进行充气时,Android会崩溃。 constructor的第二个参数是布局 -

  

layout - 布局文件的资源标识符,用于定义此列表项的视图。布局文件应至少包括“to”

中定义的那些命名视图

你正在传递android.R.id.list,这听起来像是你传递了列表ID而不是item的id。