2013-04-25 49 views

回答

3

您可以很容易地拥有一个int变量,该变量存储当前检查多少个复选框......然后在任何时候调用onCheckedChanged(),检查该变量以及它是否已经是第三个复选框以进行检查,您只需设置它为未选中再次...

比方说,你开始与所有选中的复选框。所以,你这样做:

int numberOfCheckboxesChecked = 0; 

然后,设置OnCheckChangedListener

checkbox1.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { 
     if (isChecked && numberOfCheckboxesChecked >= 2) { 
      checkbox1.setChecked(false); 
     } else { 
      // the checkbox either got unchecked 
      // or there are less than 2 other checkboxes checked 
      // change your counter accordingly 
      if (isChecked) { 
       numberOfCheckboxesChecked++; 
      } else { 
       numberOfCheckboxesChecked--; 
      } 

      // now everything is fine and you can do whatever 
      // checking the checkbox should do here 
     } 
    } 
}); 

(我没有测试的代码,但它应该工作。)

+0

当然,如果有一段时间,一些代码会很好。与此同时,如果我正确地理解了你,我会尽力去做你所说的话。 – nabuko2 2013-04-25 16:46:49

+0

请检查一些示例代码的编辑。 – zbr 2013-04-25 16:51:31

+0

好的,谢谢,我会在几分钟内测试,现在就让你。 – nabuko2 2013-04-25 16:53:58