2012-09-24 41 views
0

目前我有開始像這樣一些測試代碼:Android:我如何使用上下文創建一個首選項的數組?

CheckBoxPreference cb1 = new CheckBoxPreference(this); 
    CheckBoxPreference cb2 = new CheckBoxPreference(this); 

我想實現的是CheckBoxPreferences的數組,我會希望是這個樣子:

private CheckBoxPreference[] mFilterSubjects = new CheckBoxPreference(this)[24]; 

但是,這會生成一個錯誤「表達式的類型必須是數組類型,但它解析爲CheckBoxPreference」。下面的代碼編譯正確:

private CheckBoxPreference[] mFilterSubjects = new CheckBoxPreference[24]; 

但是,如果我嘗試使用數組元素,例如mFilterSubjects [0],我得到一個NullPointerException,因爲沒有上下文。

如何更改我的聲明以正常工作,換句話說,我如何聲明數組中的每個元素與上下文?

回答

3

你只是創建一個空的數組來保存24個元素,這就是爲什麼你會得到空指針:

private CheckBoxPreference[] mFilterSubjects = new CheckBoxPreference[24]; 

你需要的喜好添加到該數組:

for(int i = 0; i < 24; i++){ 
    mFilterSubjects[i] = new CheckBoxPreference(this); 
} 
+0

非常感謝這樣的一個及時的答案。這解決了問題。儘管有兩次「新」,但這似乎很奇怪。 –

+0

不客氣:) – Carnal

相關問題