仅在可单击的相对布局中单击“复选框”

时间:2016-07-12 17:47:57

标签: java android checkbox android-relativelayout

我试图设计一个带有相对布局内部复选框的布局。相对布局是可点击的并且按预期工作,但是当单击该复选框时,它会运行复选框代码和相对视图代码。

在运行复选框时,有没有忽略相对布局OnClickListener

RelativeLayout holder = new RelativeLayout(context);
contactHolder.setId(View.generateViewId());

TextView name = new TextView(context);
final CheckBox checkBox = new CheckBox(context);

checkBox.setId(View.generateViewId());

name.setText(contact.getName());
name.setId(View.generateViewId());

holder.addView(name);
holder.addView(checkBox);

checkBox.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            if (!checkBox.isChecked()) {
                checkBox.setChecked(true);
            }
            else if (checkBox.isChecked()){
                checkBox.setChecked(false);
            }
        }
    });

holder.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View v) {
        if (!checkBox.isChecked()) {
            checkBox.setChecked(true);
        }
        else if (checkBox.isChecked()){
            checkBox.setChecked(false);
        }
    }
});
userView.addView(holder);
}

2 个答案:

答案 0 :(得分:0)

在Relativelayout中使用它

android:clickable="true"

答案 1 :(得分:0)

从复选框中删除侦听器。然后更改RelativeLayout侦听器中的逻辑,以根据复选框的状态执行操作。