2017-06-14 42 views
-2

我想評估一個複選框是否在複選框數組上檢查,如果其中一個沒有被選中我想將3分配給n,但是隻有當它們全部被選中時纔將3分配給n,有什麼想法? , 謝謝。如何評估CheckBox數組上的checkbox.isChecked()?

for (int i = 0; i < checkBoxes.length; i++){ 
    if(!checkBoxes[i].isChecked()){ 
     n = 3; 
    } 
} 
return n; 
+0

你可以添加break;在n = 3之後,如果我正確理解了你的話 –

+2

你應該包括聲明'n'的部分。從提供的代碼片斷中,一旦發現未勾選的複選框,'n'應該變爲三,並且沒有任何關於「所有」被檢查的內容(除非'n'如果全部被勾選,則不成爲3)。 – Arc676

+0

在你的if條件下,你可以在新的數組中添加項目,在for循環之後你檢查新數組的長度,如果它是空的,那麼分配n = 3 –

回答

0
for (int i = 0; i < checkBoxes.length; i++) { 
if(!checkBoxes[i].isChecked()) { 
n = 3;                
break; 
}                 
} 
0

你可以指望的檢查箱子的數量數組中,然後檢查n值。此示例返回0如果所有複選框被選中,並3否則:

int n = 0; 
for (int i = 0; i < checkBoxes.length; i++){ 
    if(checkBoxes[i].isChecked()) { 
     n++; 
    } 
} 
return n == checkBoxes.length ? 0 : 3; 

注意,如果代碼片段你是顯示在所有有它,你也可以只return 3每當一個複選框被發現,沒有被選中。

+0

非常感謝,它的工作原理: 我設置了一個計數器,每次checkBox被取消選中時,計數器增加,如果計數器保持0,則n = 3。 – 90047872j

0

編輯您這樣的代碼

for (int i = 0; i < checkBoxes.length; i++){ 
if(!checkBoxes[i].isChecked()){ 
    n = 3; 
    break; 
    } 
} 
return n; 
0
int n=0,checked=0; 
for(int i=0;i<checkBoxes.length;i++){ 
    if(checkBoxes[i]isChecked()){ 
    checked++; 
    } 
n = checked<checkBoxes.length?3:0;