4つのチェックボックスのうち1つのチェックボックスだけを選択したい。つまり、1 つのチェックボックスが選択されている場合、他のチェックボックスは無効にする必要があります。これを達成する方法は?
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 に答える