【发布时间】:2014-11-13 17:16:28
【问题描述】:
我正在尝试使用 setChecked() 进行单选按钮切换。
setChecked(false) 工作正常,但 setChecked(true) 不起作用。
还尝试了toggle(),即使这并没有取消选中单选按钮。
我需要一个不使用无线电组的解决方案。只需一个单选按钮,点击即可切换其状态。
MainActivity.java
public void radioCheck(View v) {
System.out.println("radioCheck");
RadioButton rb = (RadioButton) findViewById(R.id.radioButton1);
//rb.toggle();
if (rb.isChecked() == true) {
rb.setChecked(false);
}
else {
rb.setChecked(true);
}
}
activity_main.xml
<RadioButton
android:id="@+id/radioButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/button1"
android:layout_centerHorizontal="true"
android:onClick="radioCheck"
android:text="Set me" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/radioButton1"
android:layout_centerHorizontal="true"
android:layout_marginBottom="39dp"
android:onClick="radioCheck"
android:text="On/ Off" />
令人惊讶的是,setChecked 在使用按钮取消选中单选按钮时有效,但在单选按钮上设置时同样无效。
【问题讨论】:
-
尝试替换这段代码:if (rb.isChecked()){
标签: java android checkbox radio-button