黑莓:使用观察者模式

时间:2013-01-08 14:57:56

标签: eclipse list blackberry java-me

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

我能够

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

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

  3. 将数据添加到矢量

  4. 并使用列表字段

  5. 显示数据

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

    建议:从我的小研究中,我发现这可以使用Observer Pattern实现。怎么样?如果可能,请提供示例代码或代码段。

2 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:-1)

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

问题是可观察对象必须改变其状态以警告观察者并更新数据。但正如我所看到的那样是强制实施模式。我建议你多研究一下。