【问题标题】:Check all checkboxes, when one checkbox is clicked in Android?检查所有复选框,当在Android中单击一个复选框时?
【发布时间】:2012-04-04 03:41:09
【问题描述】:

当“cbkomplet”被选中时,我正在尝试检查所有这些复选框。
但它不起作用。
这是我到目前为止的代码。

CheckBox repeatChkBx = ( CheckBox ) findViewById( R.id.cbkomplet );
        repeatChkBx.setOnCheckedChangeListener(new OnCheckedChangeListener()
        {
            public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
            {
                if ( isChecked )
                {
                    cbreg.isChecked();
                    cbtank.isChecked();
                    cbzoop.isChecked();
                    cbkom.isChecked();
                    cbmaske.isChecked();
                    cbbl.isChecked();
                    
                }

            }
        });

【问题讨论】:

    标签: java android checkbox


    【解决方案1】:

    您想在相关复选框上调用setChecked(),而不是isChecked()。您只是在测试是否检查了它们中的每一个,然后丢弃结果。

    http://developer.android.com/reference/android/widget/CompoundButton.html#setChecked(boolean)

    【讨论】:

      【解决方案2】:

      使用此代码。

        chkbxAll = (CheckBox)findViewById(R.id.cbAll);
          chkbxOne = (CheckBox)findViewById(R.id.chkbxOne );
          chkbxTwo = (CheckBox)findViewById(R.id.chkbxTwo );
          chkbxThree = (CheckBox)findViewById(R.id.chkbxThree );
          chkbxFour = (CheckBox)findViewById(R.id.chkbxFour );
      
       chkbxAll .setOnCheckedChangeListener(new      
          CompoundButton.OnCheckedChangeListener() {
              @Override
              public void onCheckedChanged(CompoundButton buttonView, boolean 
                isChecked) {
                  if (chkbxAll.isChecked()) {
                      chkbxOne.setChecked(true);
                      chkbxTwo.setChecked(true);
                      chkbxThree.setChecked(true);
                      chkbxFour.setChecked(true);
                  }else {
                      chkbxOne.setChecked(false);
                      chkbxTwo.setChecked(false);
                      chkbxThree.setChecked(false);
                      chkbxFour.setChecked(false);
                  }
              }
          });
      

      【讨论】:

        【解决方案3】:

        您正在调用isChecked() 方法,该方法返回一个布尔值来告诉您复选框是否被选中。请改用setChecked(),并传入true或false。

        【讨论】:

          猜你喜欢
          • 2015-12-20
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-12-05
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-01-10
          相关资源
          最近更新 更多