我的Android应用程序中有两个单选按钮和5个复选框。还有一个保存按钮。 当用户单击“保存”按钮时,我需要取消选中用户选中的复选框。我已尝试使用以下代码。但它无法正常工作。
if (chkOthers.isChecked())
chkOthers.setChecked(false);
chkOthers.setSelected(false);
}
答案 0 :(得分:13)
只需使用chk1.toggle()点击该按钮即可取消选中已选中的按钮。
public class TestCheckBoxActivity extends Activity {
/** Called when the activity is first created. */
CheckBox chk1, chk2;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
chk1 = (CheckBox)findViewById(R.id.checkBox1);
chk2 = (CheckBox)findViewById(R.id.checkBox2);
Button btn = (Button)findViewById(R.id.button1);
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(chk1.isChecked()){
chk1.toggle();
}
if(chk2.isChecked()){
chk2.toggle();
}
}
});
}
}
答案 1 :(得分:9)
如果要使用此复选框,可以在两个复选框上设置onItemClickListener,并且需要在onItemClick()方法中取消选择其他选项。一个例子是这样的: -
CheckBox cb1,cb2;
//Considering you can initialize the above variables
cb1.setOnCheckedChangeListener(new OnCheckedChangeListener{
onCheckedChanged (CompoundButton view, boolean isChecked){
cb2.setChecked(false);
}
});
cb2.setOnCheckedChangeListener(new OnCheckedChangeListener{
onCheckedChanged (CompoundButton view, boolean isChecked){
cb1.setChecked(false);
}
});
我建议你应该使用单选按钮来实现这种行为,因为它们从一开始就内置了这个功能。
答案 2 :(得分:0)
holder.checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(holder.checkBox.isChecked()) {
holder.checkBox.setChecked(false);
}else {
holder.checkBox.setChecked(true);
}
}
});