我的活动包含3个不同的CheckBox
。现在我要验证必须至少选择2 CheckBox
但我无法实现此目的。请帮忙。
代码:
Boolean checkPC = chkProtectMoney.isChecked();
Boolean checkGM = chkGrow_my_money.isChecked();
Boolean checkMN = chkMedicalNeeds.isChecked();
if(!(checkPC && checkGM == true) || !(checkGM && checkMN == true) || !(checkPC && checkMN == true) || !(checkPC && checkGM && checkPC == true)){
Toast.makeText(getActivity(),R.string.two_expertise_caution,Toast.LENGTH_SHORT).show();
}
答案 0 :(得分:4)
private boolean checkIfAnyTwoAreChecked() {
int sum = 0;
if(checkbox1.isChecked()){ sum++; }
if(checkbox2.isChecked()){ sum++; }
if(checkbox3.isChecked()){ sum++; }
return sum >= 2;
}
答案 1 :(得分:3)
您可以使用int
次。
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
}
OR
if(checkBox1.isChecked() && checkBox2.isChecked()
|| checkBox1.isChecked() && checkBox3.isChecked()
|| checkBox2.isChecked() && checkBox3.isChecked()){
// Do stuff
}
答案 2 :(得分:1)
将条件语句更改为此
if((checkPC && checkGM) || (checkGM && checkMN) || (checkPC && checkMN)) {
// YOUR CODE
}
答案 3 :(得分:1)
为所有复选框添加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