繁体   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