Android ExpandableListView OnChildClickListener不起作用

时间:2012-12-03 13:37:07

标签: android android-layout

我有一个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()事件处理程序。有什么想法吗?

3 个答案:

答案 0 :(得分:5)

试试这个,

复选框设置android:focusable=false。如果它仍然不起作用,那么添加,

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

答案 1 :(得分:1)

如上所述here,您可能需要在复选框中添加以下行:

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

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

答案 2 :(得分:0)

不要忘记启用

@Override
public boolean isChildSelectable(int groupPosition, int childPosition) {
    // TODO Auto-generated method stub
    return true;
}