我的应用程序中有可扩展的列表视图。数据以这种方式存储:
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))
如何解决?
答案 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)
}
我没有分解代码来让你了解它是如何工作的。看看我说的,如何工作列表/地图/集。这非常重要,可以帮助您编写更清晰的代码。