66

展開可能なリスト ビューを使用して Android アプリケーションを開発しています。実際に必要なのは、子を含むグループをリストしていることです。

展開できないグループを選択すると、展開する必要があります。その時点で 2 番目のグループを選択すると、最初のグループが折りたたまれます。Google で調べましたが、欲しいものが見つかりませんでした。私を助けてください。

4

8 に答える 8

29

このコードを使用すると、これが機能します

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

    @Override
    public void onGroupExpand(int groupPosition) {
        if(groupPosition != previousItem )
            expandableList.collapseGroup(previousItem );
        previousItem = groupPosition;
    }
});
于 2013-07-11T06:11:34.877 に答える
3

次のメソッドを取得ExpendableListViewしてオーバーライドします -setOnGroupExpandListener

expandableListView = (ExpandableListView) findViewById(R.id.exp_listview);

expandableListView.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
        int previousItem = -1;

        @Override
        public void onGroupExpand(int groupPosition) {
            if (groupPosition != previousItem)
                expandableListView.collapseGroup(previousItem);
            previousItem = groupPosition;
        }
    });
于 2015-12-30T19:22:04.203 に答える
1

これを ExpandableListAdapter に入れてみてください。listView は ExpandableListView 自体への参照です。そして、lastExpandedGroupPosition は、ExpandableListAdapter 内で定義された整数メンバー変数です。

 @Override
    public void onGroupExpanded(int groupPosition)

{

//collapse the old expanded group, if not the same

//as new group to expand

if(groupPosition != lastExpandedGroupPosition)

{

  listView.collapseGroup(lastExpandedGroupPosition);

  }

        super.onGroupExpanded(groupPosition);           
        lastExpandedGroupPosition = groupPosition;
    }
于 2015-07-30T11:41:01.287 に答える
0
   elstListView1.setOnGroupExpandListener(new ExpandableListView.OnGroupExpandListener() {
        @Override
        public void onGroupExpand(int groupPosition) {
            for(int i=0;i<listDataHeader.size();i++){
                if(i==groupPosition){
                    //do nothing}
                    else{
                        elstListView1.collapseGroup(i);
                    }
                }
            }
        });
于 2015-01-20T10:09:39.553 に答える
-5

私も同じ問題に直面しました。しかし、次のコードで問題を解決できました。

拡張可能なリストに4つのヘッダーがあったので、それに基づいてこのように書きました

expListView.setOnGroupExpandListener(new OnGroupExpandListener() {

            @Override
            public void onGroupExpand(int groupPos) {
                // TODO Auto-generated method stub
                expListView.collapseGroup(groupPos+1);
                expListView.collapseGroup(groupPos-1);
                expListView.collapseGroup(groupPos-2);
                expListView.collapseGroup(groupPos+2);
                expListView.collapseGroup(groupPos+3);
                expListView.collapseGroup(groupPos-3);
            }
        });`
于 2014-10-07T11:39:25.247 に答える