2011-09-08 17 views
0

sqliteデータから拡張可能なリストを作成するための簡単なチュートリアルはありますか?Android Expandable List from Sqlite

私はカテゴリと呼ばれるテーブルを持っていますし、質問と呼ばれるテーブルがあります。カテゴリがクリックされた場合、そのカテゴリの質問を表示する必要があります。

カテゴリIDを2番目のカーソルにどのように渡しますか?

助けてください。

答えて

0

これはちょっと古いですが、回答がなく、私がやっていたことのためにこれを考え出したので、私はあなたに答えを与えてくれるでしょう。

あなたが探している答えは、アダプタ(特に、オーバーライドされたgetChildrenCursorメソッド)にあります。基本的にあなたのグループのカーソルが渡されてから、それからデータを抽出して各親の子カーソルを作成します。

私の現在のプロジェクトのいくつかのコード例を次に示します。

セットアダプタ

mAdapter = new MyExpandableListAdapter(mGroupsCursor, getActivity(), 
     R.layout.explistlayout, 
     R.layout.explistlayout, 
     new String[] { "_id" }, 
     new int[] { R.id.text1 }, 
     new String[] { AttendanceDB.EVENT_NAME }, 
     new int[] { R.id.text1 }); 
lv.setAdapter(mAdapter); 

アダプタクラス

public class MyExpandableListAdapter extends SimpleCursorTreeAdapter { 

    public MyExpandableListAdapter(Cursor cursor, Context context, 
      int groupLayout, int childLayout, String[] groupFrom, 
      int[] groupTo, String[] childrenFrom, int[] childrenTo) { 
     super(context, cursor, groupLayout, groupFrom, groupTo, 
       childLayout, childrenFrom, childrenTo); 
    } 
    @Override 
    protected Cursor getChildrenCursor(Cursor groupCursor) { 
     Cursor childCursor = mDbHelper.fetchChildren(groupCursor.getString(groupCursor.getColumnIndex("_id"))); 
     getActivity().startManagingCursor(childCursor); 
     childCursor.moveToFirst(); 
     return childCursor; 
    } 
} 

データベース方法

public Cursor fetchGroup() { 
    String query ="SELECT DISTINCT " + EVENT_DATE + " AS _id FROM " + EVENT_TABLE; 
     return mDb.rawQuery(query,null); 
} 

public Cursor fetchChildren(String dateToken) { 
    return mDb.query(EVENT_TABLE, new String[] { EVENT_ROWID, 
      EVENT_NAME, EVENT_DATE }, EVENT_DATE + "='" + dateToken + "'" , 
      null, null, null, null); 
} 

ホップこれは役に立ちます!

関連する問題