2011-06-02 74 views
1

我想下載一堆圖像並想將其作爲drawable存儲在數組中。所以我嘗試聲明一個可繪製的數組,但是當我訪問該數組時,它返回異常nullPointer如何在數組中存儲drawable

我的問題是,如何將數組類型聲明爲drawable?

+0

向我們展示您的初始聲明和初始化。我敢打賭,它沒有正確初始化。 – Geobits 2011-06-02 10:46:20

+0

你如何將圖像存儲在數組中 - 共享代碼 – varuaa 2011-06-02 10:46:32

+0

Drawable []圖像; InputStream is =(InputStream)new URL(url).getContent(); draw [i] = Drawable.createFromStream(is,「src name」); – 2011-06-02 10:49:29

回答

8

可繪製的數組定義應該像:

int numDrawables = 10; 
Drawable[] drawableArray = new Drawable[numDrawables]; 

,填補了數組:

for(int i = 0; i < numDrawables; i++){ 
    // get a drawable from somewhere 
    Drawable drawable = new Drawable(); 
    drawableArray[i] = drawable; 
} 

訪問數組:

Drawable aDrawable = drawableArray[0]; 

這是基本的Java,如果你得到空指針異常,你做錯了什麼。

+0

我多麼愚蠢。我完全忘了初始化我的數組。這是唯一的錯誤。非常感謝。 – 2011-06-03 04:28:47

0

您可以使用HashMap和把鑰匙作爲網址,例如,和值是你下載的繪製:

HashMap<String,Drawable> myDrawables = new HashMap<String,Drawable>(); 
//before you download the images, you can test if your drawable is already downloaded, 
// with looking for his url in the Hashmap , 
..... 
myDrawables.put(urlOfYourDrawable, yourDrawable); 
0

如果你想存儲的元素列表(任何類型)動態地使用集合中的類。爲什麼因爲數組大小是靜態的。 示例:

ArrayList<Generic> list=new ArrayList<Generic>(); 

list.add(Generic);