作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试编写一段代码,声明如果选中一个复选框,则不能同时选中第二个复选框。我有一个名为 dayShift 的复选框,另一个名为 nightShift 的复选框。如果我检查 nightShift,然后检查 dayShift,代码将按我的预期工作。但如果我先检查 dayShift,然后检查 nightShift,则该代码不适用。
public void days(View view) {
CheckBox nightShift_check = (CheckBox)findViewById(R.id.nightShift);
CheckBox dayShift_check = (CheckBox)findViewById(R.id.dayShift);
if (nightShift_check.isChecked() && dayShift_check.isChecked())
{
nightShift_check.setChecked(false);
dayShift_check.setChecked(false);
Toast.makeText(mainApplication.this,"Error message",Toast.LENGTH_LONG).show();
}
}
最佳答案
如果您需要执行不同的逻辑,您可以使用RadioButton
,这样就不可能有两个语句同时为 true。
否则,您可以在 CheckBox
上添加名为 setOnCheckedChangeListener
的内容,并如果它们都被选中,则取消选中它们,例如:
dayShift_check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if (isChecked && nightShift_check.isChecked()) {
dayShift_check.setChecked(false);
nightShift_check.setChecked(false);
}
}
});
但如果您需要从两个按钮中进行选择,我仍然强烈建议您使用 RadioButton
,正如@NileshRathod 在评论部分中提到的那样。如果您需要从多个选项中选择一个,您可能需要使用 RadioGroup
。
关于java - 如果两个复选框的语句被选中问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57475376/
我是一名优秀的程序员,十分优秀!