簡體   English   中英

如何使用Array,List,HashMap或HashSet-創建BitmapField的長列表? (Java,黑莓)

[英]How can I using Array, List ,HashMap or HashSet - create long list of BitmapFields? (Java, Blackberry)

我需要:1)創建BitmapFields的列表,以及2)將它們添加到屏幕上。 由於列表很長,我想使用一些簡短的自動化方法,例如Loop或類似方法:

while (i < 1000)
 {
 i = i + 1;
 myBitmapField[i].setBitmap(Bitmap.getBitmapResource("picture" + i+ ".png"));
 myVerticalFieldManager.add(_myBitmapField[i]);
 }

但是似乎我不能將索引i分配給BitmapField myBitmapField [ i ]的名稱,而只能分配給文件本身的名稱。

那么,如何創建一長串BitmapFields? 我可以為此目的使用List,Array,HashMap或HashSet嗎? 歡迎舉個例子。 非常感謝! (黑莓,Java)

如果您遇到該錯誤,那僅意味着myBitmapField未聲明為數組類型。 您需要將其聲明為數組,例如:

BitmapField[] myBitmapField = new BitmapField[1000];
for (int i = 0; i < 1000; i++) {
    myBitmapField[i] = new BitmapField();
}

原則上,您可以使用列出的任何數據類型,盡管只能使用[...]語法對數組進行索引。 您只需更改聲明初始化即可使用所需的任何數據類型。 而且,如果使用的類型不支持索引,則必須更改索引以對所選數據類型使用.get方法。 但是我不確定為什么您要使用數組以外的任何東西...

到那時,您最好將上述循環與現有循環結合起來,這樣就只有一個循環了。

另外,如果您要顯示1000張圖像,您的性能可能會很差 BlackBerry在處理列表中的任何類型的1000個字段時都遇到麻煩,並且圖像非常重。 在某些設備上加載甚至可能需要很長時間,BlackBerry才會認為您的應用已掛起並終止。 更不用說從UI的角度來看,在一個小的移動屏幕上放置這么多項目並不是很好,因為沒有用戶能夠在合理的時間內瀏覽所有項目。

我嘗試了您的方式,這似乎也不適合我。 嘗試這個:

private pics = new Vector();

for(int i = 0; i < 1000; i++{

    BitmapField temp = new BitmapField();
    pics.addElement(temp);
    ((BitmapField)pics.elementAt(i)).setBitmap(Bitmap.getBitmapResource("picture" + i + ".png"));
    add((BitmapField)pics.elementAt(i));

}

我也同意@Ted關於1000個字段。 祝你好運,讓我們知道。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM