Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/204.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何取消选择所选单选按钮_Java_Android - Fatal编程技术网

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我想它不会阻止。当您选择它时,代码会立即取消选择它,所以您甚至不会注意到更改。