Я хочу создать двухуровневый ExpandableListView из локальной базы данных.
Уровень группы, в которой я хочу получить имена из базы данных Таблица категорий
category_id | name
-------------------
1 | NameOfCategory
требуемый дочерний уровеньчтобы получить имена из таблицы списка
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());
}
Теперь я хочу добавить дочерние элементы в ExpandableListView в следующем массиве ArrayList<ArrayList<ArrayList<String>>> children;
.
Как получитьдети под правильным именем группы? Я думаю, что это связано с groups.indexOf (), но в таблице списка у меня есть только внешний category_id, а не фактическое имя.