1

SQLite データベースから ListView に複数のデータを取得しようとしていますが、機能していないようです。

developer.android.com のメモ帳の例のコードを使用していますが、1 つのデータでは正常に機能しますが、2 つのデータでは機能しません。

データベースからカーソルを介してビューに各データベースエントリのタイトルと本文を取得しようとしていますが、私の問題はxmlにあると思います:

    <?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android">
    <TextView android:id="@+id/text1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="28dip" />
    <TextView android:id="@+id/text2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textSize="28dip" />
</LinearLayout>

値をバインドしようとする私のコードは次のとおりです。

mNotesCursor = mDbHelper.fetchAllNotes();
        startManagingCursor(mNotesCursor);
String[] from = new String[]{NotesDbAdapter.KEY_TITLE, NotesDbAdapter.KEY_BODY};
int[] to = new int[]{R.id.text1, R.id.text2};

SimpleCursorAdapter notes = 
        new SimpleCursorAdapter(this, R.layout.notes_row, mNotesCursor, from, to);
    setListAdapter(notes);

TextView が 1 つだけの .xml に KEY_TITLE を取得する場合 (メモ帳のチュートリアルのように) は問題ありませんが、上記で定義した xml を使用して実行しようとすると、強制終了します。

理由はありますか?

御時間ありがとうございます、

インフィニティフィズ

4

1 に答える 1

0

「SimpleCursorAdapter」を使用する代わりに、カスタム アダプターを作成した方がよいでしょう。

基本的に、「CursorAdapter」から派生する新しいクラスを作成し、「newView」および「bindView」メソッドを実装する必要があります。どちらの方法でも、カーソルが正しい位置を指すようになるため、コンテンツに直接アクセスして、ビューとデータをマッピングできます。

于 2010-06-14T09:06:12.730 に答える