2012-05-25 100 views
2

中聲明一個複選框的數組我有這個問題,但無法找到一個簡單或足夠的答案: 任何有經驗的程序員都可以幫助我......?如何在android

我有一個名爲dialog1的自定義對話框中有10個複選框的數組。

public class DigitsActivity extends Activity { 
... 
CheckBox[] ckbDigits = new CheckBox[10]; 
... 


public void SelectDigit1(){ // method which opens the custom dialog 

Context context=DigitsActivity.this; 
final Dialog dialog1 = new Dialog(context); 
... 
for (int k = 0; k <= 9; k++){ 
    ckbDigits[k] = (CheckBox) dialog1.findViewById(R.id.ckbDigits[k]); 
} 
... 
} 

我得到多個錯誤在該行

ckbDigits[k] = ... 

我也試過:

ckbDigits[] = (CheckBox) dialog1.findViewById(R.id.ckbDigits[]); 

,但它不工作,要麼...

有誰知道我如何聲明一個複選框數組?

謝謝。

+1

你是如何在XML上聲明這樣的複選框的? – m0skit0

+0

這些錯誤是什麼? –

+0

您是否嘗試過CheckBox的ArrayList? –

回答

0
  1. 在嘗試查找視圖之前,您是否稱過「setContentView」?
  2. 你初始化了ID數組嗎?
  3. 這是什麼:「R.id.ckbDigits []」?
  4. 無論如何,我會建議將ID命名爲「checkbox0」,「checkbox1」,...,然後使用getIdentifier(如this)來查找它們,以便使ids的初始化更容易。當它沒有找到它已經搜索到的ID時,你可以停下來。
-1

您必須聲明這樣

例如CheckBox的新載體:

public class Test{ 
    static int ckbDigits[]={id.ckbDigits0,id.ckbDigits1,id.ckbDigits2,id.ckbDigits3, 
    id.ckbDigits4 
    id.ckbDigits5,id.ckbDigits6,id.ckbDigits7,id.ckbDigits8,id.ckbDigits9}; 

} 

你做出這樣的事情後,在你的代碼

for (int k = 0; k <= 9; k++){ 
    ckbDigits[k] = (CheckBox) dialog1.findViewById(Test.ckbDigits[k]); 
} 
+0

你正在聲明'ckbDigits'爲'int []',然後試圖將複選框填入它。你確定? – michaelb958

+0

是的,這是錯誤的代碼。在使用ID映射之前,必須聲明CheckBox數組 – Anand

1

聲明CheckBox chk[];

然後做這樣

chk=new CheckBox[size]; 
    for (int i = 0; i < size; i++) { 
      chk[i] = (CheckBox) dialog.findViewById(R.id.checkBox); 
      chk[i].setChecked(true); 
      // whatever operations 
     }