Java 选择其他复选框时取消选中复选框
我知道这听起来很简单,但请听我说完。我有两个复选框,当其中一个被选中时,我想取消选中另一个复选框 我尝试了以下方法:Java 选择其他复选框时取消选中复选框,java,android,android-checkbox,Java,Android,Android Checkbox,我知道这听起来很简单,但请听我说完。我有两个复选框,当其中一个被选中时,我想取消选中另一个复选框 我尝试了以下方法: CheckBox chk1, chk2; if (chk1.isChecked()) { chk2.setChecked(false); } if (chk2.isChecked()) { chk1.setChecked(false); } 我也尝试过: chk1.setOnCheckedChangeListener(new CompoundButton.O
CheckBox chk1, chk2;
if (chk1.isChecked()) {
chk2.setChecked(false);
}
if (chk2.isChecked()) {
chk1.setChecked(false);
}
我也尝试过:
chk1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
chk2.setChecked(false);
}
});
chk2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
chk1.setChecked(false);
}
});
我知道我应该使用一个切换按钮,但复选框的设计工作,所以我正在寻找一种方法,使这项工作
有什么想法吗?我认为在设计方面,复选框适用于您想让用户选择多个选项的情况。我认为你应该尝试使用radioputton,这里有一个链接: 多亏了我,我成功地让它工作了,但实现了
OnClickListener
,如下所示:
chk1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
chk1.setChecked(true);
chk2.setChecked(false);
}
});
chk2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
chk2.setChecked(true);
chk1.setChecked(false);
}
});
两种变体:
首先是Java
final CheckBox cb1 = findViewById(R.id.checkBox1);
final CheckBox cb2 = findViewById(R.id.checkBox2);
cb1.setChecked(true);
cb1.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
cb2.setChecked(!isChecked);
}
});
cb2.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean isChecked) {
cb1.setChecked(!isChecked);
}
});
或者科特林是第二名
val cb1 = this.findViewById<CheckBox>(R.id.checkBox1)
val cb2 = this.findViewById<CheckBox>(R.id.checkBox2)
cb1.isChecked = true
cb1.setOnCheckedChangeListener { _, isChecked -> cb2.isChecked = !isChecked }
cb2.setOnCheckedChangeListener { _, isChecked -> cb1.isChecked = !isChecked }
val cb1=this.findviewbyd(R.id.checkBox1)
val cb2=此.findViewById(R.id.checkBox2)
cb1.isChecked=true
cb1.setOnCheckedChangeListener{{,isChecked->cb2.isChecked=!isChecked}
cb2.setOnCheckedChangeListener{{,isChecked->cb1.isChecked=!isChecked}
处理click事件而不是checkedChange事件如何?我可以快速尝试,我会让您know@NoEm谢谢,很好用不客气就像我在问题中说的。。我知道这违背了设计原则,但我正在寻找解决办法。我会选择单选按钮路线,并像复选框一样对其进行蒙皮。我已经让它起作用了,但我对你的答案是否也起作用感兴趣,所以我试了试,但没有起作用。你能给我链接一个不起作用的完整代码吗?因为它在我的设备上运行良好