我想在4个复选框中只选择一个复选框。我的意思是,如果选中一个复选框,则应禁用其他复选框。如何实现这个目标?
答案 0 :(得分:3)
如果您使用通用onClick
,则可能会遇到其他元素的未来问题,点击您应用中的处理程序。我会将android:onClick="onCheckboxClicked"
添加到xml文件中的每个CheckBox
。然后添加我在下面显示的方法,根据你的id等定制。
<CheckBox android:id="@+id/chkBx1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Option 1"
android:onClick="onCheckboxClicked"/>
<CheckBox android:id="@+id/chkBx2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Option 2"
android:onClick="onCheckboxClicked"/>
<CheckBox android:id="@+id/chkBx3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/Option 3"
android:onClick="onCheckboxClicked"/>
主要活动:
public void onCheckboxClicked(View v) {
CheckBox chk1 = (CheckBox)findViewById(R.id.chkBx1);
CheckBox chk2 = (CheckBox)findViewById(R.id.chkBx2);
CheckBox chk3 = (CheckBox)findViewById(R.id.chkBx3);
switch (v.getId()) {
case R.id.chkBx1:
if (chk1.isChecked()) {
chk2.setEnabled(false);
chk3.setEnabled(false);
} else {
chk1.setEnabled(true);
chk2.setEnabled(true);
chk3.setEnabled(true);
}
break;
case R.id.chkBx2:
if (chk2.isChecked()) {
chk1.setEnabled(false);
chk3.setEnabled(false);
} else {
chk1.setEnabled(true);
chk2.setEnabled(true);
chk3.setEnabled(true);
}
break;
case R.id.chkBx3:
if (chk3.isChecked()) {
chk1.setEnabled(false);
chk2.setEnabled(false);
} else {
chk1.setEnabled(true);
chk2.setEnabled(true);
chk3.setEnabled(true);
}
break;
}
}
答案 1 :(得分:1)
您可以使用单选按钮,通过更改按钮属性使其看起来像复选框
<RadioButton android:id="@+id/chkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
andriod:button="@drawable/youcheckboximage"
/>