我正在创建的应用程序中有单选按钮。当用户点击一个选项时,我希望其他单选按钮不可点击。
我不知道怎么做,单选按钮设置在onclick监听器中,逻辑设置在点击内。
答案 0 :(得分:3)
如何在其余按钮上调用setEnabled(false)
呢?如果有太多按钮,您可以考虑放入一个数组:
RadioButton[] buttons; //you put here all buttons..
// then, when you catch the click, call a method like this
private void disableOtherButtons(RadioButton buttonClicked)
for(RadioButton button : buttons){
if( button != buttonClicked ){
button.setEnabled(false);
}
}
}
答案 1 :(得分:0)
如果您使用XML,则可以使用RadioGroup对它们进行分组,在以下示例中,一次只能选择一个单选按钮。
<RadioGroup
android:id="@+id/rg_configup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
>
<RadioButton
android:id="@+id/rb_configup1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sales"
android:layout_centerVertical="true"
android:layout_centerHorizontal="true"
>
</RadioButton>
<RadioButton
android:id="@+id/rb_configup2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Regional"
android:layout_above="@+id/rb_configup1"
android:layout_alignLeft="@+id/rb_configup1"
>
</RadioButton>
<RadioButton
android:id="@+id/rb_configup3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Global"
android:layout_above="@+id/rb_configup2"
android:layout_alignLeft="@+id/rb_configup1"
>
</RadioButton>
<RadioButton
android:id="@+id/rb_configup4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Ad-hoc"
android:layout_above="@+id/rb_configup3"
android:layout_alignLeft="@+id/rb_configup1"
>
</RadioButton>
</RadioGroup>