Android将sql表中的值检索到listview中

时间:2012-02-22 15:24:46

标签: android sql listview

问题基于this教程。

我必须使用java类:

  • DBAdapter.java:这是使用数据库的帮助程序类。

  • DatabaseActivity.java:我在db中添加行,检索
    价值观等。

在DBAdapter类中,这是从表中检索所有值的函数:

public Cursor getAllTitles()
{
return db.query(DATABASE_TABLE, new String[] {
KEY_ROWID, KEY_ISBN, KEY_TITLE, KEY_PUBLISHER}, null, null, null, null, null);
}

在DatabaseActivity类中,这是我检索所有值的方法:

Cursor c = db.getAllTitles();
if (c.moveToFirst())
{
 do {
     DisplayTitle(c);
    } while (c.moveToNext());
}

这是onCreate()方法之外的函数:

   public void DisplayTitle(Cursor c)
    {
    Toast.makeText(this,
    "id: " + c.getString(0) + "\n" +
    "ISBN: " + c.getString(1) + "\n" +
    "TITLE: " + c.getString(2) + "\n" +
    "PUBLISHER: " + c.getString(3),
    Toast.LENGTH_LONG).show();
    } 

在main.xml中我有一个listview。

这是dblist.xml,它具有该listview的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
     xmlns:android="http://schemas.android.com/apk/res/android"
     android:layout_width="fill_parent"
     android:layout_height="wrap_content"
     android:orientation="horizontal">
     <TextView android:id="@+id/ISBN"
         android:layout_width="200dip"
         android:layout_height="wrap_content"/>
     <TextView android:id="@+id/TITLE"
         android:layout_width="30dip"
         android:layout_height="wrap_content" android:layout_weight="1"/>
     <TextView android:id="@+id/PUBLISHER"
         android:layout_width="30dip"
         android:layout_height="wrap_content"  android:layout_weight="1"/>
</LinearLayout>

我想将表格的值(3列)放入此列表视图中。我该怎么做?

2 个答案:

答案 0 :(得分:0)

您需要ListView的适配器,它为数据库中的每一行设置正确的数据。如果你正在使用游标,你应该考虑CursorAdapter并使用它的bindView方法来设置正确的数据。

答案 1 :(得分:0)

我建议使用SimpleCursorAdapter(文档here)。 This是一个很棒的教程,可以帮助你。正如标题“简单”所暗示的那样,这是将数据库数据绑定到列表并轻松刷新的好方法,无需大量自定义工作。祝你好运。