ExpandableListView - 自动折叠组

Owe*_*Nel 3 android expandablelistview collapse

我使用自定义适配器创建了一个ExpandableListView,所有工作都完美无缺,包括点击,折叠和展开事件.如果有人需要有关可扩展列表视图的帮助,我可以按照以下教程进行操作:http://www.androidhive.info/2013/07/android-expandable-list-view-tutorial/.

我现在想在我的setOnGroupExpandListener方法中编写代码来折叠所有其他与当前聚焦的组不同的组.(内容意识 - 从某种意义上说)澄清一下,如果我有以下内容:

第1项

  • 子项目1
  • 子项目2

第2项

  • 子项目1

第3项

  • 子项目1
  • 子项目2

如果我点击第1项,它应该扩展第1项(这已经有效),它应该为我折叠第2项和第3项组.这是可能的,我怎样才能做到这一点?

这是我当前的setOnGroupExpandListener:

    gpsMenuListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
        @Override
        public void onGroupExpand(int groupPosition) {
            Toast.makeText(getApplicationContext(), "Expanded: " + gpsMenuListDataHeader.get(groupPosition).toString(), Toast.LENGTH_SHORT).show();
        }
    });
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我目前只有Toast打印消息,但我想添加折叠功能.

Den*_*ann 9

listView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
            @Override
            public void onGroupExpand(int groupPosition) {
                YourExpandableListAdapter customExpandAdapter = (YourExpandableListAdapter)listView.getExpandableListAdapter();
                if (customExpandAdapter == null) {return;}
                for (int i = 0; i < customExpandAdapter.getGroupCount(); i++) {
                    if (i != groupPosition) {
                        listView.collapseGroup(i);
                    }
                }
            }
        });
Run Code Online (Sandbox Code Playgroud)