ExpandableListView OnGroupCollapseListener - 在崩溃发生之前的任何侦听器/观察者?

时间:2014-08-22 21:43:41

标签: android expandablelistview

ExpandableListView有一个侦听器,用于检测何时折叠组名为OnGroupCollapsedListener(doc)。无论您在该侦听器中放置什么代码,都会在该组崩溃后调用。

有没有人知道如何在群组崩溃之前调用某些代码?也许是一个BeforeCollapsedListener ???

2 个答案:

答案 0 :(得分:4)

您可以使用此简短代码段保存组状态,并在每次单击组时进行检查。在展开和/或折叠组之前注册组点击。

private boolean[] mGroupStates;

@Override
public void onCreate(Bundle savedInstanceState) {
    ...
    mGroupStates = new boolean[mExpAdapter.getGroupCount()]

    mExpList.setOnGroupClickListener(new ExpandableListView.OnGroupClickListener() {
        @Override
        public boolean onGroupClick(ExpandableListView parent, View v, int groupPos, long id) {
            // Switch boolean
            mGroupStates[groupPos] = !mGroupStates[groupPos];
            // Check expanding or collapsing
            if (mGroupStates[groupPos]) {
                // group is being expanded
            } else {
                // group is being collapsed
            }
            // False will make sure that the click continues with it's operation
            return false;
        }
    });
    ...
}

答案 1 :(得分:2)

您可以使用onGroupClickListener来触发折叠/扩展自己

ExpandableListView lv ; // init the listView with your stuff
boolean animated = true;
lv.setOnGroupClickListener(new OnGroupClickListener() {

        @Override
        public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) {
            // do your stuff

            lv.expandGroup(groupPosition, animated);
            // let system handle event
            return false;
}