ExpandableListview - 如何在单击另一个项目时关闭上一个打开的项目?

ExpandableListview - How do I close the previous opened item, when another item is clicked?

当在可扩展列表视图上单击另一个项目时,如何关闭上一个打开的项目?

我参考这个教程http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/
但是当我点击新项目时,prevoius项目不会关闭。

因此您一次只需要一个(或零个)扩展组。正确的?当您展开另一个组时,以下代码将关闭先前展开的组。试试吧。

给你

final int[] prevExpandPosition = {-1};
    expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
        @Override
        public void onGroupExpand(int groupPosition) {
            if (prevExpandPosition[0] >= 0 && prevExpandPosition[0] != groupPosition) {
                expandableListView.collapseGroup(prevExpandPosition[0]);
            }
            prevExpandPosition[0] = groupPosition;
        }
    });

您可以实现 ExpandableListView.OnGroupClickListener,在其中您必须为所有列表组调用 collapseGroup(),但被单击的列表组除外,如下所示:

  expandableList.setOnGroupExpandListener(new OnGroupExpandListener() {
    int previousGroup = -1;

    @Override
    public void onGroupExpand(int groupPosition) {
        if(groupPosition != previousGroup)
            expandableList.collapseGroup(previousGroup);
        previousGroup = groupPosition;
    }
});
        expandableList.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
        int previousGroup = -1;

        @Override
        public void onGroupExpand(int groupPosition) {
            if(groupPosition != previousGroup)
                expandableList.collapseGroup(previousGroup);
            previousGroup = groupPosition;
        }
    });