【发布时间】:2012-04-03 06:11:37
【问题描述】:
我想从本地数据库创建一个二级 ExpandableListView。
我想从数据库Category表中获取名称的组级
category_id | name
-------------------
1 | NameOfCategory
我想从 List 表中获取名字的子级
list_id | name | foreign_category_id
--------------------------------
1 | Listname | 1
我在 DatabaseDAO 中有一个方法可以从表中获取所有值
public List<Category> getAllCategories()
{
database = dbHelper.getReadableDatabase();
List<Category> categories = new ArrayList<Category>();
Cursor cursor = database.query(SQLiteHelper.TABLE_CATEGORY, null, null, null, null, null, null);
cursor.moveToFirst();
while(!cursor.isAfterLast())
{
Category category = cursorToCategory(cursor);
categories.add(category);
cursor.moveToNext();
}
cursor.close();
return categories;
}
现在将名称添加到组级别很容易,我可以通过以下方式进行:
ArrayList<String> groups;
for(Category c : databaseDao.getAllCategories())
{
groups.add(c.getName());
}
现在我想将子元素添加到以下数组 ArrayList<ArrayList<ArrayList<String>>> children; 中的 ExpandableListView。
如何让孩子使用正确的组名? 我认为它必须与 groups.indexOf() 做一些事情,但在列表中我只有一个外国 category_id 而不是实际名称。
【问题讨论】:
标签: android sqlite expandablelistview