我想在 4 个复选框中只选择一个复选框。我的意思是,如果选择了一个复选框,则应禁用其他复选框。如何做到这一点?
问问题
5635 次
2 回答
3
如果您使用泛型onClick
,那么您可能会在您的应用程序中遇到其他元素单击处理程序的未来问题。我会在你的 xml 文件中添加android:onClick="onCheckboxClicked"
每个。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;
}
}
于 2012-11-19T16:44:05.470 回答
1
您可以使用单选按钮并通过更改按钮属性使它们看起来像复选框
<RadioButton android:id="@+id/chkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text=""
andriod:button="@drawable/youcheckboximage"
/>
于 2013-10-02T09:36:06.857 回答