我有一个EventBean类型的日期矢量,而display我使用的是一个标签字段,它只显示矢量中的最后一个值,覆盖所有其他数据:
for (int i = 0; i < vector.size(); i++) {
EventsBean bean1 = (EventsBean) vector.elementAt(i);
if (bean1.getUserDate().equals(label1.getText())) {
summaryLabel.setText("SUBJECT Saved");
labelListener.setText(bean1.getSummary());
startDateLabel.setText("START DATE Saved");
labelListener1.setText(bean1.getStartDate());
endDateLabel.setText("END DATE Saved");
labelListener2.setText(bean1.getEndDate());
}
标签在构造函数中创建为
labelListener = new LabelField("",
LabelField.FIELD_LEFT);
add(labelListener );
您正在添加一些标签字段,并在for循环中设置字段的文本。循环运行时,将为矢量中的每个项目设置标签字段。循环结束后,标签字段将具有最后一项的文本,这显然会覆盖前一项的值。
您需要在本地创建labelListener执行以下操作:
for (int i = 0; i < vector.size(); i++) {
EventsBean bean1 = (EventsBean) vector.elementAt(i);
if (bean1.getUserDate().equals(label1.getText())) {
LabelField labelListener=new LabelField();
summaryLabel.setText("SUBJECT Saved");
labelListener.setText(bean1.getSummary());
startDateLabel.setText("START DATE Saved");
labelListener1.setText(bean1.getStartDate());
endDateLabel.setText("END DATE Saved");
labelListener2.setText(bean1.getEndDate());
add(labelListener);
}