Java android:如果不满足某些条件,则不应单击RadioButton
我有一个单选按钮组,其中我有4个单选按钮。我现在在检查每个RadioButton后执行某些操作如果不满足某些条件,我想取消选中条件不满足的RadioButton并检查以前选择的RadioButton 因为。下面代码中的示例我正在检查internet连接是否可用如果可用我正在调用一个方法。。。但是如果它不可用,我就打印一个祝酒词。。但是我还想取消选中代码中else部分的单选按钮。。我该怎么做?请帮忙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
@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)的参数动态创建单选按钮,如何知道取消选中哪个单选按钮;