复选框中的OnclickListener(Android Studio)

时间:2016-01-14 18:41:49

标签: java android checkbox onclicklistener

这是我的代码的一部分,其中包括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。 当我运行应用程序时,复选框是Checked,因为我定义了eralier,但是当我点击复选框时,它已取消选中,然后再次进行了不必要的检查(我没有再次选中复选框!) 我该怎么做才能解决这个问题,我的代码有什么问题? 谢谢!

4 个答案:

答案 0 :(得分:4)

Checkbox将处理"检查"自动处理 - 您无需自行管理标准用途。

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

答案 1 :(得分:2)

试试这个:

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 :(得分:1)

你正在与CheckBox作战。复选框改变状态的标准行为,你不需要自己做。

删除setChecked的true和false,然后粘贴一些有用的东西)

答案 3 :(得分:0)

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

你要处理特定州的其他一些行动。