Java 如何取消选择所选单选按钮
选择时尝试取消选择单选按钮。有人建议我使用Java 如何取消选择所选单选按钮,java,android,Java,Android,选择时尝试取消选择单选按钮。有人建议我使用 RadioGroup radioGroup = (RadioGroup)findViewById(R.id.Radio_Group); radioGroup.clearCheck(); 但当我在代码中使用它时,它会阻止所有单选按钮,因此无法选择它们 public void OnRadioButtonClick(View view) { boolean checked = ((RadioButton) view).isChecked(
RadioGroup radioGroup = (RadioGroup)findViewById(R.id.Radio_Group);
radioGroup.clearCheck();
但当我在代码中使用它时,它会阻止所有单选按钮,因此无法选择它们
public void OnRadioButtonClick(View view)
{
boolean checked = ((RadioButton) view).isChecked();
switch (view.getId()) {
case radioButton1:
Toast.makeText(MainActivity.this, "..." + String.valueOf(checked),
Toast.LENGTH_SHORT).show();
break;
case R.id.radioButton2:
Toast.makeText(MainActivity.this, "..." + String.valueOf(checked),
Toast.LENGTH_SHORT).show();
break;
case R.id.radioButton3:
Toast.makeText(MainActivity.this, "...." + String.valueOf(checked),
Toast.LENGTH_SHORT).show();
break;
}
}
请用简单的语言解释:)我是编程新手。
谢谢。使用.setChecked(false)代码>
例如:
//global variable, inside a class
boolean wasChecked;
public void OnRadioButtonClick(View view){
boolean checked = ((RadioButton) view).isChecked();
if(wasChecked && checked){
((RadioButton) view).setChecked(false);
wasChecked = false;
}else if(checked){
wasChecked = true;
}
// ...
}
以下是完整的解决方案:
boolean wasChecked;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void OnRadioButtonClick(View view)
{
boolean checked = ((RadioButton) view).isChecked();
if(wasChecked && checked){
((RadioButton) view).setChecked(false);
wasChecked = false;
}else if(checked){
wasChecked = true;
}
switch (view.getId()) {
case R.id. radioButton1:
Toast.makeText(MainActivity.this, "..." + String.valueOf(checked),
Toast.LENGTH_SHORT).show();
break;
case R.id.radioButton2:
Toast.makeText(MainActivity.this, "..." + String.valueOf(checked),
Toast.LENGTH_SHORT).show();
break;
case R.id.radioButton3:
Toast.makeText(MainActivity.this, "...." + String.valueOf(checked),
Toast.LENGTH_SHORT).show();
break;
}
}
尝试使用radioGroup。检查(-1)代码>还有,为什么您的第一个案例陈述本身就是一个radioButton,而不是R.id.radioButton1
?嗯。。我真的不知道,但它有效:)。我会改变它。在何处执行“radioGroup.check(-1);”在我的代码里?非常感谢Guardo,当我把它放在代码中时,“check”变成红色。谢谢sudo。但是和上面一样的问题——在我的代码中,您建议的方法在哪里实现?谢谢。@Beksa你可以把它放在任何你想取消选择单选按钮的地方。好的。现在要检查它。当我放入“((RadioButton)视图)。setChecked(false);”在每个盒子里,它都会阻止所有按钮的选择。@Beksa我想它不会阻止。当您选择它时,代码会立即取消选择它,所以您甚至不会注意到更改。