我正在 android 中创建一个可扩展列表视图。我有一个 sql 数据库,每个项目都有一个“组名”(其中有许多项目具有相同的组名),然后是一个唯一的“文件名”,它分别成为我的可扩展列表视图和我的孩子中的组。
我想尝试创建一个可扩展的列表视图,该视图贯穿并基于代码添加所需的组和子项,以便我可以向现有组添加新组和新文件,并且不需要重新编码。
这是我到目前为止所拥有的:
String[] groups;
arraylist = new ArrayList<String>();
Cursor listCursor = database.query(true, TABLE_NAME, new String[]{"groupname"}, null, null, "groupname", null, null, null);
listCursor.moveToFirst();
if (!listCursor.isAfterLast()) {
do {
nametoadd = listCursor.getString(0);
arraylist.add(nametoadd);
} while (listCursor.moveToNext());
}
listCursor.close();
groups = arraylist.toArray(new String[arraylist.size()]);
如您所见,它创建了一个 Cursor 查询,该查询在 groupname 列中查找不同的值,然后将每个值添加到 arraylist。然后这些组添加了该数组列表并且可以正常工作,我可以获得可变数量的组。我无法添加孩子。
我现有的代码通过以下方式添加孩子:
private String[][] children = {
{ "child item1", "child item2", "child item3" },
{ "child item1", "child item2", "child item3" }
};
这里的问题是,首先,我将在每个数组中拥有可变数量的项目,其次我将在 children 数组中拥有可变数量的数组。
我有第一部分的解决方案:
for (int i = 0; i < arraylist.size(); i++) {
listCursor = database.query(TABLE_NAME, new String[]{"groupname", "description"}, "groupname='"+arraylist.get(i)+"'", null, null, null, null);
listCursor.moveToFirst();
if (!listCursor.isAfterLast()) {
do {
nametoadd = listCursor.getString(1);
arraylist.add(nametoadd);
} while (listCursor.moveToNext());
}
listCursor.close();
childrenlist = arraylist.toArray(new String[arraylist.size()]);
}
这将添加每个组名中的任何子项。但是,我怎样才能将每个数组添加到子数组中呢?