Android 如何获取可以选中的复选框数?

Android 如何获取可以选中的复选框数?,android,android-checkbox,Android,Android Checkbox,我有一个包含3个不同复选框的活动。现在我想验证至少必须选中2个复选框,但我无法实现这一点。请帮忙 代码: 将条件语句更改为 if((checkPC && checkGM) || (checkGM && checkMN) || (checkPC && checkMN)) { // YOUR CODE } 将条件语句更改为 if((checkPC && checkGM) || (checkGM && check

我有一个包含3个不同复选框的活动。现在我想验证至少必须选中2个复选框,但我无法实现这一点。请帮忙

代码:


将条件语句更改为

if((checkPC && checkGM) || (checkGM && checkMN) || (checkPC && checkMN)) {
    // YOUR CODE
}

将条件语句更改为

if((checkPC && checkGM) || (checkGM && checkMN) || (checkPC && checkMN)) {
    // YOUR CODE
}

为所有复选框添加checkedChangeListener,并根据签入更新计数

int checkedCount = 0;

chkProtectMoney.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if ( isChecked )
        {
            checkedCount++;
        }else{
           checkedCount--;
        }
        if(checkedCount >= 2){
           // voila
        }else{
           //alert to check atleast two
        }
    }
});
//add for other two same logic then

为所有复选框添加checkedChangeListener,并根据签入更新计数

int checkedCount = 0;

chkProtectMoney.setOnCheckedChangeListener(new OnCheckedChangeListener()
{
    @Override
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked)
    {
        if ( isChecked )
        {
            checkedCount++;
        }else{
           checkedCount--;
        }
        if(checkedCount >= 2){
           // voila
        }else{
           //alert to check atleast two
        }
    }
});
//add for other two same logic then
您可以使用整数计数

您可以使用整数计数


为什么不简单地使用计数器来达到这个目的?为什么条件是这样的?O.O不应该是ifcheckPC和checkGM | | checkGM和checkMN | | checkPC和checkMN?那些是什么!为什么不简单地使用计数器呢?为什么条件是这样的?O.O不应该是ifcheckPC和checkGM | | checkGM和checkMN | | checkPC和checkMN?那些是什么!对于
 private int getCheckedCount() {
    int count = 0;
    if (checkBox1.isChecked())
        count++;
    if (checkBox2.isChecked())
        count++;
    if (checkBox3.isChecked())
        count++;
    return count;
}

  if(getCheckedCount()>=2){
    // Do your stuff
}
 if(checkBox1.isChecked() && checkBox2.isChecked()
            || checkBox1.isChecked() && checkBox3.isChecked() 
            || checkBox2.isChecked() && checkBox3.isChecked()){
        // Do stuff
    }