Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.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
在android中调用oncheckedchanged侦听器之前检查一个条件_Android_Radio Button - Fatal编程技术网

在android中调用oncheckedchanged侦听器之前检查一个条件

在android中调用oncheckedchanged侦听器之前检查一个条件,android,radio-button,Android,Radio Button,我有一个无线电组,我为其实施了一次检查更改,如下所示: RadioGroup mRadioGroup = (RadioGroup) findViewById(R.id.radio_grp); mRadioGroup.setOnCheckedChangeListener(this); 我的活动在CheckedChangeListener上实现 @Override public void onCheckedChanged(RadioGroup group, int checkedId) {

我有一个无线电组,我为其实施了一次检查更改,如下所示:

RadioGroup mRadioGroup = (RadioGroup) findViewById(R.id.radio_grp);
mRadioGroup.setOnCheckedChangeListener(this);
我的活动在CheckedChangeListener上实现

@Override
    public void onCheckedChanged(RadioGroup group, int checkedId) {
        switch (group.getId()) {
        case R.id.radio_grp:
            if (my condition is true) {
                Log.d(TAG, "want to change the radio group's checked button if code reaches here.");
            } else {
                Log.d(TAG, "do not want to change the radio group's checked button if code reaches here.");
            }
            break;
        default:
            break;
        }
    }
现在,每当用户单击单选按钮时,它会在onCheckedChanged中激发代码,并检查用户单击的单选按钮。但我想检查“我的条件为真”,然后只有它应该更改单选按钮选择,如果条件为假则不更改

有人能建议我应该做些什么来实现这一点吗

谢谢

PS:我也无法思考我应该在这个问题的“主题”中写些什么,所以如果有人可以总结这个主题,请编辑它


PPS:我尝试通过
group.check(R.id.last\u selected\u id)重置无线组的状态但这将引发StackoverFlow异常,因为代码将卡在一个永无止境的循环中。

oncheckedchanged侦听器中有什么情况?这种情况是否取决于新选择的单选按钮?否。。我正在实施“应用内计费”,所以我正在检查用户是否有权访问由单选按钮控制的功能。如果他购买了它,那么条件将返回true else false。也许我没有清楚地理解您的问题,因为我的英语不好,对此我很抱歉,但为什么您不使用公共布尔变量来控制此条件?我通过公共布尔变量来控制条件,但问题是一旦代码达到在“onCheckedChanged”函数中,它首先更改选中的按钮,然后运行我的代码。若用户不符合您的条件,也许您可以禁用单选按钮组的clickListener。或者,您可以在不想更改选定单选按钮的情况下重新选择上一个选定单选按钮。