2012-02-22 44 views
0

問題是根據this教程。Android從sql表中檢索值到列表視圖

我得java類:

  • DBAdapter.java:這是使用數據庫中的輔助類。

  • DatabaseActivity.java:我在哪裏添加行到數據庫,檢索
    值等

在將對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中我有一個列表視圖。

這是有一個列表視圖的佈局dblist.xml:

<?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列)的值到這個列表視圖。我應該怎麼做?

+0

此示例看起來不錯http://kahdev.wordpress.com/2010/09/27/android-using-the-sqlite-database-with-listview – Selvin 2012-02-22 15:38:40

回答

0

您需要一個適配器來爲您的ListView設置數據庫中每一行的正確數據。如果你使用光標,你應該考慮一個CursorAdapter並使用它的bindView-method來設置正確的數據。

0

我會推薦SimpleCursorAdapter(文檔here)。 This是一個很棒的教程,可以幫助你。正如「Simple」標題所示,這是將數據庫數據綁定到列表並在不需要大量定製工作的情況下輕鬆刷新的好方法。祝你好運。