面对labelfield的一个问题

时间:2012-03-15 15:29:46

标签: blackberry calendar labelfield

我有一个类型为EventBean的日期的向量,而显示我正在使用labelfield,它只显示向量中的最后一个值,覆盖所有其他数据:

    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 );

2 个答案:

答案 0 :(得分:0)

您正在添加一些labelfields并在for循环中设置字段的文本。当循环运行时,它将为向量中的每个项设置labelfield。当循环结束时,labelfields将显示最后一项的文本,这显然会覆盖前一项的值。

答案 1 :(得分:0)

您需要在本地创建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);
}