getChild()方法产生错误

时间:2015-11-19 10:40:27

标签: android expandablelistview

我的应用程序中有可扩展的列表视图。数据以这种方式存储:

    ArrayList<Map<String, String>> groupData;   
    ArrayList<Map<String, String>> childDataItem;
    ArrayList<ArrayList<Map<String, String>>> childData;    
    Map<String, String> m;

当我使用方法getChild()时:

    @Override
    public Object getChild(int groupPosition, int childPosititon) {
        return this.childData.get(groupData.get(groupPosition)).get(childPosititon);
    }

它在groupData.get(groupPosition))

中出错

如何解决?

2 个答案:

答案 0 :(得分:2)

你误会了什么 - arraylist使用整数位置键

所以 - &gt; groupData.get(groupPosition)返回String 然后你不能childData.get(groupData.get(groupPosition))

此外,你应该考虑一个类似于=&gt;

的列表
HashMap<String,<Map<String, String>> values;

这里你的父/子只有一个列表。

答案 1 :(得分:0)

HashMap<String,<Map<String, String>> values;

与此:

@Override
public Object getChild(int groupPosition, int childPosititon) {
    String key = values.keyset().get(groupPosition); //Father key look how words hashmap on oracle site;
    parentElement = values.get(key);
    childKey = parentElement.keyset().get(childPosititon);
    return parentElement.get(childKey)
}

我没有分解代码来让你了解它是如何工作的。看看我说的,如何工作列表/地图/集。这非常重要,可以帮助您编写更清晰的代码。