1

我有一个 ExpandableListView,一切正常。我在每个子行中都有一个复选框,当我单击子行时,我想切换如下:

expandableListView.setOnChildClickListener(new OnChildClickListener() {
    @Override
    public boolean onChildClick(ExpandableListView parent, View v, int groupPosition, int childPosition, long id) {
        CheckBox checkBox = (CheckBox) v.findViewById(R.id.checkBox1);
        checkBox.toggle();
        return true;
    }
});

问题是程序永远不会进入 onChildClick() 事件处理程序。任何想法?

4

3 回答 3

5

尝试这个,

android:focusable=false复选框设置。如果还是不行,再补充

android:descendantFocussability=blocksDescendants到最顶层的布局。

于 2012-12-03T13:39:12.320 回答
1

不要忘记启用

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return true;
}
于 2014-10-20T12:48:16.750 回答
1

如此处所述,您可能必须将以下行添加到您的复选框中:

    android:focusable="false"
    android:clickable="false"
    android:focusableInTouchMode="false"

有了这个,我可以简单地使用 ExpandableListView 的 OnChildClickListener

于 2015-03-03T08:32:33.213 回答