Android RadioButton not able to unset using setChecked(false) method

南笙酒味 提交于 2019-12-20 10:25:14

问题


If I set a radio button to be selected on the first time, it works fine. But if I unselect it by calling ((RadioButton) findViewById(R.id.ID)).setChecked(false); then, later even if I try to make it selected by calling setChecked(true) will not work unless the user select it from the screen.

Have any one come across this? or is it only me?

        if(Val != null){
        if( ((RadioButton) findViewById(R.id.ID1)).getText().toString().trim().equals(Val))
        ((RadioButton) findViewById(R.id.ID1)).setChecked(true);
        else if(((RadioButton) findViewById(R.id.ID2)).getText().toString().trim().equals(Val))
        ((RadioButton) findViewById(R.id.ID2)).setChecked(true);
        }
        else {
            ((RadioButton) findViewById(R.id.ID1)).setChecked(false);
            ((RadioButton) findViewById(R.id.ID2)).setChecked(false);
        }

If the else part is executed atleast once then everything gets mess up. When I step thro my debugger, I can see the execution goes in the correct path and setting it to true. It is getting executed only once, I checked that. And I am not resetting it back to false in any other part of the code.


回答1:


I found the solution.

It is not possible to uncheck a particular radio button. You can only set the other item to true.

So to clear all the checked items, you should call the clearcheck() method on the RadioGroup.

So my else part is

        else {
            ((RadioGroup) findViewById(R.id.ID0)).clearCheck();
        }



回答2:


Take one invisible radio button and check it. All other radio buttons of group will be unchecked automatically..



来源:https://stackoverflow.com/questions/4035465/android-radiobutton-not-able-to-unset-using-setcheckedfalse-method

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!