我有这 3 个单选按钮,我们假设 radio1、radio2、radio3。我所做的是,如果我检查了 radio1 和 radio2,radio3 将不可检查,依此类推。所以我一次只能检查 2 个按钮。
然后我制作了这个按钮,如果我单击它,它将取消选中所有选中的单选按钮。现在我的问题是每当我尝试检查 radio1 和 radio2 并清除它时。即使不再检查 radio1 和 2,radio3 仍然不可点击。
RadioButton radio1;
RadioButton radio2;
RadioButton radio3;
Button clear;
TextView tv;
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.secondxml);
radio1 = (RadioButton) findViewById(R.id.rd1);
radio2 = (RadioButton) findViewById(R.id.rd2);
radio3 = (RadioButton) findViewById(R.id.rd3);
radio1.setOnCheckedChangeListener(this);
radio2.setOnCheckedChangeListener(this);
radio3.setOnCheckedChangeListener(this);
tv = (TextView) findViewById(R.id.tv);
clear = (Button) findViewById(R.id.clear);
clear.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
radio1.setChecked(false);
radio2.setChecked(false);
radio3.setChecked(false);
tv.setText("");
}
});
}
@Override
public void onCheckedChanged(CompoundButton arg0, boolean arg1) {
// TODO Auto-generated method stub
if(radio1.isChecked() && radio2.isChecked()){
tv.setText("Radio1 and 2 is checked ");
radio3.setClickable(false);
}
if(radio1.isChecked() && radio3.isChecked()){
radio2.setClickable(false);
tv.setText("radio 1 and 3 is checked");
}
if(radio2.isChecked() && radio3.isChecked()){
radio1.setClickable(false);
tv.setText("radio2 and 3 is checked");
}
}
}
最佳答案
因此您设置了radio3
通过调用 radio3.setClickable(false);
不可点击当您选择radio1
时和radio2
。您的清除按钮不会扭转这一情况。
我建议您的onClick(...)
为您清理的方法OnClickListener
你打电话
radio1.setClickable(true);
radio2.setClickable(true);
radio3.setClickable(true);
当您清除选择时,这将阻止它们被禁用,使它们恢复到默认状态。
关于java - Android 取消选中单选按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6842844/