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

只需在Android ListView中填充数据库表名即可,android,database,sqlite,listview,Android,Database,Sqlite,Listview,Android开发非常新…我一直在互联网上搜寻答案,但我仍然发现自己陷入困境,希望有人能帮我一把。我绝对承认我是个新手……但我正在努力学习 我有一个已填充的sqlite数据库,我将它包含在一个包中。我已将其复制到资产文件夹中。数据库有4个表(以及下面的一些字段) 我有一个简单的带有listview的活动,我试图简单地查询数据库中的表名并填充它们,但是没有得到任何结果 我的DataBaseAdapter代码本质上就是以下代码: 我修改了数据库名称和路径 我要调用的类代码如下: 编辑时::: pu

Android开发非常新…我一直在互联网上搜寻答案,但我仍然发现自己陷入困境,希望有人能帮我一把。我绝对承认我是个新手……但我正在努力学习

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

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

我的DataBaseAdapter代码本质上就是以下代码:

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

我要调用的类代码如下:

编辑时:::

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调用上非常努力……但是我被卡住了

您的往返数组不正确。“发件人”字符串数组当前为空。这将是您试图显示的列的名称。因此,在您的情况下,它将是“名称”。“to”数组将是要将值映射到的视图的id…而不是列表的id。您需要创建一个新布局,其中包含一个要显示的文本字段。在“收件人”字段中,您将给出此新文本字段的id。然后在SimpleCorsorAdapter中,您可以将此新布局与“收件人”和“发件人”数组一起发送。

尝试以下代码:

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(); 
        }
private void getData(){
tb.open();
列表项=新建ArrayList();
游标c=tb.fetchallemployee();
c、 moveToFirst();
ListAdapter=新的SimpleCorsorAdapter(此,
R.layout.show_数据库,c,
新字符串[]{“日期”,“标题”},
新的int[]{R.id.toptext,R.id.bottomtext});
setListAdapter(适配器);
setListAdapter(条目);
tb.close();
}

Nick,我真的很感谢您的回复。我在一个ID为listview的TextView中创建了一个名为“list_view”的新布局文件。我编辑了上面的代码片段以显示我的更改。当我启动活动时,仍然没有看到任何填充内容。只是确认一下,当我通过DDMS查看数据库时,它确实存在于应用程序数据中。你能想到我还缺什么吗?