【问题标题】:OnclickListener in a checkbox (Android Studio)复选框中的 OnclickListener (Android Studio)
【发布时间】:2016-04-20 05:37:54
【问题描述】:

这是我的代码的一部分,其中包括 CheckBox(ChckBoxNo):

    final CheckBox ChckBoxNo = (CheckBox)promptsView.findViewById(R.id.ChkBoxNo);

                                  ChckBoxNo.setChecked(true);

                                   ChckBoxNo.setOnClickListener(new View.OnClickListener() {
                                       @Override
                                       public void onClick(View v) {
                                           if (ChckBoxNo.isChecked()) {

                                         ChckBoxNo.setChecked(false);
                                           }
                                           else if (!ChckBoxNo.isChecked())
                                           {
                                               ChckBoxNo.setChecked(true);
                                           }
                                       }
                                   });

一开始我为我的复选框上的 isChecked() 方法设置了 true,然后我在复选框上实现了 onclicklistener。 当我运行应用程序时,复选框被选中,因为我定义了eralier,但是当我单击复选框时,它没有被选中,然后立即再次选中(我没有在复选框上再次单击!) 我应该怎么做才能解决这个问题,我的代码有什么问题? 谢谢!

【问题讨论】:

    标签: java android checkbox onclicklistener


    【解决方案1】:

    试试这个:

    checkBox = (CheckBox) findViewById(R.id.checkBox);
                checkBox.setChecked(checkPasswordExist());
                checkBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
    
                    @Override
                    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
                        if (checkBox.isChecked()) {
                            // your code to checked checkbox                        
                            }
                        } else {
                            // your code to  no checked checkbox
                        }
                    }
                });
    

    【讨论】:

      【解决方案2】:

      Checkbox 将自动处理“检查”过程 - 您不必自己管理这个标准用法。

      查看文档中的this example。在这里,当捕获到点击事件时,它们是基于isChecked() 状态进行操作。

      【讨论】:

        【解决方案3】:

        您正在与 CheckBox 作斗争。复选框更改状态是标准行为,您无需自己执行此操作。

        删除 setChecked true 和 false 并在那里粘贴有用的东西)

        【讨论】:

        • 如果您只想知道状态何时发生变化,请改为设置 OnCheckChangedListener。
        • 这让我想到另一个问题:这应该暗示您需要调查和创建另一个问题,这不是论坛
        【解决方案4】:

        您不需要将选中状态设置为您已单击的状态。

        您需要处理特定状态下的一些其他操作。

        【讨论】:

          猜你喜欢
          • 2012-03-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-14
          相关资源
          最近更新 更多