如何首先填充可扩展列表组项,然后在android中填充点击组项的子行?

时间:2014-07-06 14:42:05

标签: android expandablelistview

我从sqlite db中读取了所有组及其子数据,并填充了我的自定义可扩展列表。我想从db加载组数据,当用户单击组项时,当前组项的子行从db加载并显示在我的可扩展列表中。 感谢。

1 个答案:

答案 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)

当然,如果该小组得到扩展,那就是当然。