繁体   English   中英

如何取消选择选定的RadioButton

[英]How to deselect selected RadioButton

尝试在选择时取消选择RadioButton。 建议我使用

RadioGroup radioGroup = (RadioGroup)findViewById(R.id.Radio_Group);
    radioGroup.clearCheck();

但是当我在代码中使用它时,它将阻止所有RadioButton,因此无法选择它们。

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;
        }
    }

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM