在使用以下代码进行大量搜索以从sqlite数据库表中显示listview之后,除了被已知的圈子解决之外,我没有其他的去除。我引发simplecursoradapter的行引起了问题,我的应用程序停止了。代码中没有其他错误。如果我评论线simplecursoradapter,这个错误不会来,但当然没有列表视图。
Cursor c= vivzHelper.getAllRows();
String[] from = new String[]{ vivzHelper.NAME};
int[] to = new int[] {android.R.id.text1};
SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(context,android.R.layout.simple_list_item_1,c,from,to,0);
ListView thislist=(ListView)findViewById(R.id.listView);
thislist.setAdapter(cursorAdapter);
public Cursor getAllRows( ) {
String where = null;
SQLiteDatabase db = helper.getWritableDatabase();
String[] columns = { VivzHelper.UID,VivzHelper.NAME};
Cursor c = db.query(VivzHelper.TABLE_NAME, columns, null, null, null, null, null);
if (c != null) {
c.moveToFirst();
}
return c;
}
答案 0 :(得分:0)
执行以下更改,您将显示一个列表视图,创建一个包含您选择名称的新xml文件。根据您的要求,您只需要列表视图中的一个项目,因此,您可以为新的xml文件提供文本视图,如下所示:
//定义列表视图的单行: custom_row.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/custom_listView"
android:orientation="horizontal">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Task1"
android:paddingLeft="20dp"
android:id="@+id/textView" />
</LinearLayout>
在您的活动中执行此操作,定义自定义行,并为您的数组指定自定义行:
Cursor c= vivzHelper.getAllRows();
String[] from = new String[]{ vivzHelper.NAME};
int[] to = new int[] {R.id.textView}; // textView of custom row.
SimpleCursorAdapter cursorAdapter;
cursorAdapter = new SimpleCursorAdapter(getBaseContext(), R.layout.cutsom_row, c, from, to, 0);
ListView thislist=(ListView)findViewById(R.id.listView);
thislist.setAdapter(cursorAdapter);
public Cursor getAllRows( ) {
String where = null;
SQLiteDatabase db = helper.getReadableDatabase();
String[] columns = { VivzHelper.UID,VivzHelper.NAME};
Cursor c = db.query(VivzHelper.TABLE_NAME, columns, null, null, null, null, null);
if (c != null) {
c.moveToFirst();
}
return c;
}
这必须足以显示您的列表视图,如果您仍有问题,请告诉我。