Android 筛选后ExpandableListView子顺序不正确

Android 筛选后ExpandableListView子顺序不正确,android,expandablelistview,android-filterable,Android,Expandablelistview,Android Filterable,嘿,伙计们,这就是我如何在我的可扩展列表中添加内容的 listDataHeader = new ArrayList(Arrays.asList("Afghanistan", "Albania", "Algeria", "Andorra", "Angola", "Anguilla", "Antigua and Barbuda", "

嘿,伙计们,这就是我如何在我的可扩展列表中添加内容的

listDataHeader = new ArrayList(Arrays.asList("Afghanistan",
            "Albania",
            "Algeria",
            "Andorra",
            "Angola",
            "Anguilla",
            "Antigua and Barbuda",
            "Argentina",
            "Armenia",
            "Aruba",`........`
listDataChild=新HashMap>()

有什么帮助吗?

已解决:

设置getChild()和getChildrenCount()正确地解决了这个问题

public int getChildrenCount(int groupPosition) {
    return this.filteredDatachild.get(this.filteredData.get(groupPosition))
            .size();
}



public Object getChild(int groupPosition, int childPosititon) {
        return this.filteredDatachild.get(this.filteredData.get(groupPosition))
                .get(childPosititon);
    }
创建新的子列表,如下所示:

for (int i = 0; i < count; i++) {
            filterableString = list.get(i);
            if (filterableString.toLowerCase().contains(filterString)) {
                nlist.add(filterableString);


                nchildlist.put(nlist.get(ii),originalDatachild.get(nlist.get(ii)));
                ii++;
                Log.d( "Child Items:", "Child index:" + ii);
            }
for(int i=0;i
如果订单很重要,请使用LinkedHashMap
listDataChild.put(listDataHeader.get(0), Afghanistan);//Header,Child data
listDataChild.put(listDataHeader.get(1), Albania);
listDataChild.put(listDataHeader.get(2), Algeria);
listDataChild.put(listDataHeader.get(3), Andorra);
listDataChild.put(listDataHeader.get(4), Angola);
listDataChild.put(listDataHeader.get(5), Anguilla);
public int getChildrenCount(int groupPosition) {
    return this.filteredDatachild.get(this.filteredData.get(groupPosition))
            .size();
}



public Object getChild(int groupPosition, int childPosititon) {
        return this.filteredDatachild.get(this.filteredData.get(groupPosition))
                .get(childPosititon);
    }
for (int i = 0; i < count; i++) {
            filterableString = list.get(i);
            if (filterableString.toLowerCase().contains(filterString)) {
                nlist.add(filterableString);


                nchildlist.put(nlist.get(ii),originalDatachild.get(nlist.get(ii)));
                ii++;
                Log.d( "Child Items:", "Child index:" + ii);
            }