我在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
)
答案 0 :(得分:1)
尝试对列表视图中的项目进行充气时,Android会崩溃。 constructor的第二个参数是布局 -
layout - 布局文件的资源标识符,用于定义此列表项的视图。布局文件应至少包括“to”
中定义的那些命名视图
你正在传递android.R.id.list,这听起来像是你传递了列表ID而不是item的id。