使用以下代码我无法使用simplecursoradaptor引发列表视图

时间:2015-03-19 05:13:09

标签: java android

在使用以下代码进行大量搜索以从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;
    }

1 个答案:

答案 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;
    }

这必须足以显示您的列表视图,如果您仍有问题,请告诉我。