2012-02-22 12 views
0

質問はthisチュートリアルに基づいています。AndroidはSQLテーブルからリストビューに値を取得します

私は、Javaクラスにあります。

  • DBAdapter.java:これは、データベースを使用するヘルパークラスです。

  • DatabaseActivity.java:私は
    値を取得、DBに行を追加していなどDBAdapterクラスで

これは、テーブルからすべての値を取得するための機能です:

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

これは私がすべての値を取得する方法である:

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

これはのonCreate()メソッド外部関数である:私は、リストビューを有するmain.xmlで

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(); 
    } 

これは、リストビューのレイアウトを持つ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

答えて

0

データベースの各行に適切なデータを設定するListView用のアダプタが必要です。カーソルを使って作業している場合は、CursorAdapterについて考えて、正しいデータを設定するためにbindView-methodを使用してください。

0

SimpleCursorAdapter(文書here)をお勧めします。 Thisはあなたを連れて行く素晴らしいチュートリアルです。 「シンプル」というタイトルが示唆しているように、これはデータベースデータをリストにバインドし、大量のカスタマイズ作業を行うことなく簡単に更新できる素晴らしい方法です。がんばろう。

関連する問題