只需在Android ListView中填充数据库表名称即可

时间:2012-02-19 01:48:58

标签: android database sqlite listview

Android开发的新手......我一直在网上寻找答案,但我仍然发现自己陷入了困境,并希望有人可以帮助我。我绝对承认我是新手......但是想要学习。

我有一个已经填充的sqlite数据库,我将其包含在一个包中。我已将其复制到资产文件夹中。该数据库有4个表(以及其下的一些字段)。

我有一个带有listview的简单活动,我试图简单地在数据库中查询表名并让它们填充,但是我没有得到任何结果。

我的DataBaseAdapter代码基本上是这里的代码: http://www.reigndesign.com/blog/using-your-own-sqlite-database-in-android-applications/

我修改了我的数据库名称和路径。

我要调用此类的代码在这里:

ON EDIT :::

public Cursor fetchAllNotes() {

    return myDbHelper.rawQuery("SELECT name FROM sqlite_master WHERE type='table'",
            new String[]{});
}

private void fillData() {

    Cursor c = fetchAllNotes();
    startManagingCursor(c);

    String[] from = new String[] {"name"};
    int[] to = new int[] {R.id.listview};


    SimpleCursorAdapter notes = 
            new SimpleCursorAdapter (this, R.layout.list_view, c, from, to);
    setListAdapter(notes);

            }

    }

项目运行,它只是在ListView(在一个名为lists.xml的xml中)中没有产生结果,代码部分在这里:

        <ListView
        android:id="@android:id/list"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="1" />    

         <TextView android:id="@android:id/empty"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:background="#000000"
           android:text="No data"
           style="@style/ButtonText"/>

任何帮助都会很棒,我确信我的sql电话很难... ...但我被卡住了。

2 个答案:

答案 0 :(得分:0)

您的往返数组不正确。你的'from'字符串数组目前是空白的。这将是您要显示的列的名称。所以在你的情况下,它将是“名称”。你的'to'数组将是你将值映射到的视图的id ...而不是列表的id。您需要创建一个新的布局,并在其中显示TextField。在“到”字段中,您将提供此新文本字段的ID。然后在SimpleCursorAdapter中,您可以将这个新布局与'to'和'from'数组一起发送。

答案 1 :(得分:0)

试试这段代码:

private void getData() {

            tb.open();

            List<String> items = new ArrayList<String>();

             Cursor c = tb.fetchallemployee();
             c.moveToFirst(); 

             ListAdapter adapter=new SimpleCursorAdapter(this,
                             R.layout.show_database, c,
                             new String[] {"date", "title"},
                             new int[] {R.id.toptext, R.id.bottomtext});
             setListAdapter(adapter);

             setListAdapter(entries);

             tb.close(); 
        }