扩展ListView的ChildView工作不正确

时间:2014-03-31 22:39:10

标签: android listview hashmap expandable

我有一个ExpendableListView,每个groupView有5个子节点。但是,当我想在列表中添加多个groupView时,没有任何作用......

childView不在相应的groupView下(每个groupView 5个),但是它们将被添加到来自其他groupViews的其他childViews(如果列表中有2个groupView,则每个groupView 10个,如果是3个,则为15个.. )。 这意味着所有可用的子视图都在everyGroupVeiw元素中 有谁能够帮我?我很抱歉我的英语不好。

我认为错误在于Hashmap星座,但我不明白......

这就是我设置适配器的方式,我在这个tut中使用了spendableBaseAdapter: http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/

public void prepareListData(){
    dataChild = new HashMap<String, List<String>>();
    dataHead = new ArrayList<String>();

    List<String> uebung = new ArrayList<String>();


    for(int i=0;i<list.size();i++){
        //set Head
        dataHead.add(list.get(i).getName());
        //set Childs

        uebung.add(String.valueOf(list.get(i).getGewicht()));
        uebung.add(String.valueOf(list.get(i).getWdhlg()));
        uebung.add(String.valueOf(list.get(i).getSaetze()));
        uebung.add(String.valueOf(list.get(i).getKommentar()));
        uebung.add(String.valueOf(list.get(i).getEinheit()));

        dataChild.put(dataHead.get(i), uebung);
    }
adapt = new ListViewAdapterUebungH(getActivity(), dataHead, dataChild);
        explistView.setAdapter(adapt);

1 个答案:

答案 0 :(得分:0)

好的,我发现了我的错误,我必须在for循环中创建新的Listuebung。 由于这个错误,信息被添加到每个新头元素的列表中

List<String> uebung;

    //size is the filled list from Trainingsplansammlung
    for(int i=0;i<list.size();i++){
        uebung = new ArrayList<String>();
        //set Head
        dataHead.add(list.get(i).getName());
        //set Childs

        uebung.add(String.valueOf(list.get(i).getGewicht()));
        uebung.add(String.valueOf(list.get(i).getWdhlg()));
        uebung.add(String.valueOf(list.get(i).getSaetze()));
        uebung.add(String.valueOf(list.get(i).getKommentar()));
        uebung.add(String.valueOf(list.get(i).getEinheit()));

        dataChild.put(dataHead.get(i), uebung);
    }