在android中显示对象列表
我想显示一个对象的整个列表,但我只显示最后一个列表。在android中显示对象列表
我用于旅行的代码,但它只显示列表中的最后一个。
对不起我的英语不好:(
代码:。
if(!L.isEmpty()){
for(Iterator<Bits> i = L.iterator(); i.hasNext();) {
Bits item = i.next();
imageBit.setImageBitmap(BitmapFactory.decodeFile(item.getbImage()));
nameBit.setText(item.getbText());
System.out.println(item);
}
}
要显示所有图像有一些延迟试试这个。
在你的类创建以下瓦尔:
final Handler handler = new Handler();
private int currentPosition = 0;
,然后调用下面的方法开始显示在OnCreate,的onResume图像,或当你想这一切开始:
showNextImage();
蚂蚁的代码为showNextImage应该是这样的:
private void showNextImage() {
// loads the image at position currentPosition
Bits item = L.get(currentPosition);
imageBit.setImageBitmap(BitmapFactory.decodeFile(item.getbImage()));
nameBit.setText(item.getbText());
System.out.println(item);
currentPosition++; // updates the current position
if (L.size() > currentPosition) { // more images to show?
// loads the next image after some delay
handler.postDelayed(new Runnable() {
@Override
public void run() {
showNextImage();
}
}, 1000); // in millis, 1000 for one second delay
}
}
我加了一些co只是为了澄清。你可以删除它们。
它应该工作。
非常感谢你,帮助我的例子,因为我现在只需要做显示比特的图像,显示相同位的名称等等,谢谢你的帮助! – Exbaby
这是因为你的nameBit TextView的每次迭代设置新的文本值同样为ImageView的所以当循环到达终点,它分配最后一个项目名称的文本值和同为像你或许应该做下一个文本:。
if(!L.isEmpty()){
StringBuilder builder = new StringBuilder();
for(Iterator<Bits> i = L.iterator(); i.hasNext();) {
Bits item = i.next();
imageBit
.setImageBitmap(
BitmapFactory.decodeFile(item.getbImage())
);
builder.append(item.getbText()).append("\n");
}
String resultingText= builder.toString();
nameBit.setText(resultingText);
System.out.println(resultingText);
}
这将显示在你的TextView的所有文字值 顺便说一下,在imageBit中的这个实现中,您只会看到最后一张图片。 所以我认为,你没有正确选择建筑。请参阅ListView或RecyclerView文档。这个视图的目的是显示对象列表,如果你能正确实现它。
谢谢你的回答,但是如果我想按时间(秒)显示每个分隔符,那可以做到吗? @Eugene Laminskiy – Exbaby
要单独显示项目(作为列表),您应该实现ListView或RecycleView。 –
我想imageBit只是一个ImageView,因此该图像的位图会在每个循环中被覆盖,而且没有延迟,这就是为什么您只能看到最后一个。 – jeprubio
谢谢,如果我想去显示每个时间(秒)分开,这可以做到这一点? – Exbaby