Java android:如果不满足某些条件,则不应单击RadioButton

Java android:如果不满足某些条件,则不应单击RadioButton,java,android,android-layout,android-studio,android-fragments,Java,Android,Android Layout,Android Studio,Android Fragments,我有一个单选按钮组,其中我有4个单选按钮。我现在在检查每个RadioButton后执行某些操作如果不满足某些条件,我想取消选中条件不满足的RadioButton并检查以前选择的RadioButton 因为。下面代码中的示例我正在检查internet连接是否可用如果可用我正在调用一个方法。。。但是如果它不可用,我就打印一个祝酒词。。但是我还想取消选中代码中else部分的单选按钮。。我该怎么做?请帮忙 @Override public void onCheckedChanged(RadioGroup

我有一个单选按钮组,其中我有4个单选按钮。我现在在检查每个RadioButton后执行某些操作如果不满足某些条件,我想取消选中条件不满足的RadioButton并检查以前选择的RadioButton

因为。下面代码中的示例我正在检查internet连接是否可用如果可用我正在调用一个方法。。。但是如果它不可用,我就打印一个祝酒词。。但是我还想取消选中代码中else部分的单选按钮。。我该怎么做?请帮忙

@Override
public void onCheckedChanged(RadioGroup group, int i) {
    Log.e("Position 649 :", i + grades_Array.get(i) + "");
    Boolean check_net = Utils.isConnected(context);
    if(check_net) {
        if(rdb_id!=-1)
        change_grade = grades_Array.get(i);
        change_grade = change_grade.replace(' ', '-');
        grade = change_grade;
        ProductDetails.bundle.putString("product_grade", grade);
        ProductDetails.bundle.putString("product_caret", caret);
        ProductDetails.bundle.putString("product_color", color);
        ProductDetails.bundle.putString("product_size", size_item);
        ProductDetails.bundle.putString("diamond_color", diamond_color);
        ProductDetails.bundle.putString("product_rate", rate_per_gm);
        ProductDetails.bundle.putString("product_weight", breakup_weight );
        ProductDetails.bundle.putString("product_weight", breakup_weight );
        ProductDetails.bundle.putString("product_purity", purity );
        calculation_data(productId, caret, diamond_color, grade, color, String.valueOf(check_size_Array.indexOf(size_item)), purity);
    }
    else{
        Utils.setToastCenter(context, context.getString(R.string.net_msg));
    }
}

要取消选中单选按钮,请使用以下命令:

...
else{
    Utils.setToastCenter(context, context.getString(R.string.net_msg));
    radiobutton.setOnCheckedChangeListener (null);        
    radiobutton.setChecked(false);
    radiobutton.setOnCheckChangeListener(mListener);
}
其中
radiobutton
是要取消选中的单选按钮。
您必须将单选按钮的检查侦听器保存到一个临时变量
mListener

这就是我解决问题的方法,希望它能帮助某人:

//I took an integer
int rdb_id=-1;
//and onCreate I did:
    rdb_id=diamond_rg.getCheckedRadioButtonId();
//AND..

    @Override
        public void onCheckedChanged(RadioGroup group, int i) {

            Boolean check_net = Utils.isConnected(context);
            if(check_net) {
                change_grade = grades_Array.get(i);
                change_grade = change_grade.replace(' ', '-');
                grade = change_grade;
                ProductDetails.bundle.putString("product_grade", grade);
                ProductDetails.bundle.putString("product_caret", caret);
                ProductDetails.bundle.putString("product_color", color);
                ProductDetails.bundle.putString("product_size", size_item);
                ProductDetails.bundle.putString("diamond_color", diamond_color);
                ProductDetails.bundle.putString("product_rate", rate_per_gm);
                ProductDetails.bundle.putString("product_weight", breakup_weight );
                ProductDetails.bundle.putString("product_weight", breakup_weight );
                ProductDetails.bundle.putString("product_purity", purity );
                whatSize=fromRadio;
                rdb_id=i;
                calculation_data(productId, caret, diamond_color, grade, color, String.valueOf(check_size_Array.indexOf(size_item)), purity);
            }
            else{
                setToastCenter(context, context.getString(R.string.net_msg));
                diamond_rg.check(rdb_id); //setting previously selected radiobutton
            }
        }

通过
-1
请注意,我的上述评论将取消选中
放射组中的所有选项
您通常只希望其中一个选项能够被选中,否则您希望选中复选框您是否可以解决此问题?(在手机上,因此无法在回答评论中标记您)您可以从
组中获取
radiobutton
radiobutton.setChecked(false);这一个会在检查更改后触发吗??我想它会触发。这个解决方案有效吗?我认为监听器触发器认为您通过编程方式设置了check/uncheck。过来看。我遇到了复选框和广播组的问题。对了,就在刚才,我想你误解了我的问题。我想取消选中onCheckedChanged()方法中的选中单选按钮。。表示调用此方法时已选中单选按钮。。我想在else部分回滚这个选中的单选按钮。如果我只是通过使用onCheckedChanged(RadioGroup group,int i)的参数动态创建单选按钮,如何知道取消选中哪个单选按钮;