这是因为它是一个 else if
代替 if
s。一旦满足第一个,就不会检查其他人。更改您检查这些的顺序。所以类似
if (cb1.isChecked() && cb2.isChecked()) {
a="abc";
}
else if(cb1.isChecked()) {
a="pqr";
}
else if(cb2.isChecked()){
a="asd";
}
else{
a="xyz";
}
题
我有一个代码块,该代码可以检查复选框的检查状态并相应地显示值,但是在我的代码中,我有一个必须使用像
if (cb1.isChecked()) {
a="abc";
}
else if(cb1.isChecked() && cb2.isChecked()) {
a="pqr";
}
else if(cb2.isChecked()){
a="asd";
}
else{
a="xyz";
}
如果选择了Checkbox1或Checkbox2,我会得到值
知道该代码怎么了?
解决方案
这是因为它是一个 else if
代替 if
s。一旦满足第一个,就不会检查其他人。更改您检查这些的顺序。所以类似
if (cb1.isChecked() && cb2.isChecked()) {
a="abc";
}
else if(cb1.isChecked()) {
a="pqr";
}
else if(cb2.isChecked()){
a="asd";
}
else{
a="xyz";
}
其他提示
改成:
if(cb1.isChecked() && cb2.isChecked()) {
a="pqr";
}
else if (cb1.isChecked()) {
a="abc";
}
else if(cb2.isChecked()){
a="asd";
}
else{
a="xyz";
}
在您的代码中,如果检查了CD1,它将不再介入其他。
在其他梯子中,只能执行一个块,您应该像以下几个以下操作:
if (cb1.isChecked()) {
a = cb2.isChecked() ? "pqr" : "abc";
} else if(cb2.isChecked()){
a="asd";
}
else{
a="xyz";
}
或者
if(cb1.isChecked() && cb2.isChecked()) {
a="pqr";
}
else if (cb1.isChecked()) {
a="abc";
}
else if(cb2.isChecked()){
a="asd";
}
else{
a="xyz";
}
如果他没有的话,如果他不进入他的其他人,他将进入第一个
首先修改条件
if(cb1.ischecked()&&!cb2.ischecked())
目前,由于第一个条件仅取决于CB1的值,因此控制进入第一块。
控制永远不会进入本逻辑中的第二个块。