是否有任何简单的教程可以帮助从sqlite数据创建可扩展列表?
我有一个名为categories的表,然后是一个名为questions的表。如果单击某个类别,则需要显示该类别的问题。
如何将类别ID传递给第二个游标?
任何帮助表示感谢。
答案 0 :(得分: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);
}
希望这有帮助!