有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

安卓 Java事件处理帮助(通知与事件对象)

我正在构建一个Android应用程序和一个Blackberry应用程序(相同的应用程序和不同的平台)。我正在构建一个抽象类来处理事件。例如,我在Android上点击“保存”按钮,它会发布一个notif/事件。抽象类接收该事件。我按下黑莓手机上的“保存”按钮,它也会做同样的事情

实现这一目标的最佳方式是什么?我看过EventObject,以及MBean和它的通知类,但它们看起来过于复杂。在objective-c中,我只需向objective-c notificationcenter注册一个通知类实例,然后在触发notif的类中,在触发时,我们按照“postNotification”的思路做一些事情。Java中有那么简单的东西吗?我还需要发送带有这些通知的对象

哦,我想我们实际上不能使用任何MBeans类。不是Blackberry Java版本的一部分

谢谢


共 (1) 个答案

  1. # 1 楼答案

    对于BlackBerry,如果您计划从UI元素(ButtonField、ListField等)生成这些事件,那么它们都带有字段。setChangeListener(FieldChangeListener),所以您只需将一个侦听器附加到它。如果您希望它能够响应IO或处理之类的事情,那么可以使用Event和EventListener类来实现这一点。就我个人而言,我认为它们比我需要的简单通知多一点,所以我通常会制作自己的简单接口

    假设您有一个类,它扩展了连接到web服务的线程,以下载一个列出州及其首都的XML文件。并对其进行处理。可以使用抽象方法public void addEventHandler(EventHandler)protected void notifyHandlers(Object obj)创建接口事件生成器。其中有一个向量存储事件处理程序,您的notifyHandlers()可以循环使用它并向handler.handleEvent(Object)发送调用。处理完数据后,将其封装在一个项目(可能是哈希表或自定义状态bean)中,我们将其称为states,并在内部调用notifyHandlers(states)。现在,在遍历每个EventHandler时,调用handler.handleEvent(states)。您可以考虑在每次调用时尝试一个catch,这样EVENDENDELL不会阻止它们运行。

    因此,事件处理程序。这是另一个具有抽象方法public void handleEvent(Object obj)的接口。假设您有一个屏幕,在检索到states之后,将在列表中显示它们。此屏幕将实现EventHandler,然后使用generator.addEventHandler(this)向EventGenerator注册自身。每当处理完成时,就会调用此方法,您可以对返回的对象执行任何操作

    您可以实现的一个附加功能是将public void handleEvent(Object obj)更改为public boolean handleEvent(Object obj),并且与BB中的导航方法类似,如果事件已被处理,则返回true,其他任何操作都不应尝试处理它