为了账号安全,请及时绑定邮箱和手机立即绑定

如果两个复选框的语句被选中问题

如果两个复选框的语句被选中问题

一只甜甜圈 2023-06-04 17:36:34
我正在尝试编写一段代码,声明如果选中一个复选框,则不能同时选中第二个复选框。我有一个名为 dayShift 的复选框,另一个名为 nightShift。如果我正在检查 nightShift 和 THEN 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();    }}
查看完整描述

2 回答

?
繁星点点滴滴

TA贡献1803条经验 获得超3个赞

如果您需要执行不同的逻辑,您可以使用RadioButton,所以不能同时有两个语句为真。


否则,您可以添加一些setOnCheckedChangeListener在您身上CheckBox调用的东西,如果它们都被选中,则取消选中它们,例如:


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如果您需要从两者中进行选择,如果您需要从多个选项中选择一个选项,您可能想要使用RadioGroup.


查看完整回答
反对 回复 2023-06-04
?
一只萌萌小番薯

TA贡献1795条经验 获得超7个赞

您应该在 CheckBox 上使用侦听器来获取每次单击时的状态:


nightShift_check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        @Override

        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            dayShift_check.setChecked(!isChecked);

        }

    });


dayShift_check.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {

        @Override

        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            nightShift_check.setChecked(!isChecked);

        }

    });

当一个人处于一种状态时,另一个人处于相反的状态。希望能有所帮助。


查看完整回答
反对 回复 2023-06-04
  • 2 回答
  • 0 关注
  • 112 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信