-2

我正在做一个在列表字段中显示新闻的项目。新闻以 XML 形式从 Web 服务返回。作为 blackberry 的 Java 新手,我通过浏览、研究和提问取得了一些进展。

我已经能够

  1. 获取从 Web 服务返回的 xml

  2. 通过 DOM/SAX 解析器解析 xml

  3. 将数据添加到向量

  4. 并使用列表字段显示数据

问题:假设用户当前正在查看或滚动列表而他不知道或不知道,我如何使用新的或当前的新闻(数据)更新列表字段。

建议:从我的小研究中,我发现这可以使用观察者模式来实现。如何?如果可能,示例代码或片段。

4

2 回答 2

1

首先,观察者模式只有在你有办法监听远程数据的变化时才有意义(即:如果你的服务器在数据变化时向 BB 发送了推送消息)。由于您必须提取数据,因此您没有在听任何内容,您需要的只是在每次 WS 调用后更新列表。

要更新列表,请查看ObjectListField类中的方法。您可以插入和删除单行。要更新单行或多行,您必须设置整个数组。修改后,只需在字段上调用 ​​invalidate 即可。

于 2013-01-09T10:24:35.050 回答
-1

在 Java 库中,您可以找到 Observer 接口和 Observable 类。使您想要观察的对象(在本例中为 listField)继承了 Observable 类。然后创建一个实现 Observer 接口的类,这个类会更新你的数据。更多:http ://docs.oracle.com/javase/1.4.2/docs/api/java/util/Observer.html

问题是可观察对象必须更改其状态以提醒观察者并更新数据。但正如我所见,这是该模式的强制实施。建议你多研究。

于 2013-01-08T20:45:46.310 回答