我从sqlite db中读取了所有组及其子数据,并填充了我的自定义可扩展列表。我想从db加载组数据,当用户单击组项时,当前组项的子行从db加载并显示在我的可扩展列表中。 感谢。
答案 0 :(得分:2)
您所做的就是创建一个从头开始加载(从数据库中获取)第一级(组)的适配器。然后在适配器的onGroupExpand方法内部获取第二级(子级)的项目数组。
您可能还想实现onGroupCollapse,因为它们将不再被使用,所以卸载了额外的子项。
以下是这些功能的示例。
HashMap<Integer, List<String>> children = new HashMap<Integer, List<String>>();
@Override
public void onGroupExpanded(int groupPosition) {
super.onGroupExpanded(groupPosition);
// Add children as an array to our HashMap
children.put(groupPosition, DBHelper.getChildren(groupPosition));
}
@Override
public void onGroupCollapsed(int groupPosition) {
super.onGroupCollapsed(groupPosition);
if (children.get(groupPosition).size() > 0)
children.remove(groupPosition);
}
适配器有一个名为子节点的全局HashMap
子节点,其中包含已加载的子节点数组。如果你想让孩子们让我们说列表中的#5组,那么你可以打电话:
List<String> myChildren = children.get(4)
当然,如果该小组得到扩展,那就是当然。