新手Java开发人员问题 - 与事件的班级间沟通

时间:2010-01-30 12:50:23

标签: java android events

请原谅这个问题的基本性质 - 但我们都必须从某个地方开始。我做了一些谷歌搜索,但所有答案似乎都与UI事件有关。

我正在创建一个非常简单的Android应用程序,它将在屏幕上显示您的位置。我有扩展Activity的主类(HelloAndroid),我创建了一个侦听更新的LcoationUpdateHandler类。

HelloAndroid拥有LocationUpdateHandler的一个实例,所以我的问题是LocationUpdateHandler如何与HelloAndroid进行通信。

在flex中,我会将一个事件从一个发送到另一个,但是从我所做的搜索中,这似乎不是一种非常简单的java-y方式吗?

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

当HelloAndroid实例创建一个LocationUpdateHandler实例时,它可以在构造函数中传递对自身的引用,LocationUpdateHandler可以存储该引用,以便在事件的情况下用于将来的方法调用。

对于这些情况,您实际上并不需要知道什么类型的对象实例化LocationUpdateHandler。这是接口进来,您可以定义一个定义事件方法的接口并实现该接口,以便LocationUpdateHandler可以保持对该接口的引用以传递事件。

如果情况是对称的,两个类都可以实现相同的事件接口。

答案 1 :(得分:1)

听起来你正在寻找的是Observer pattern。它的工作方式是观察者注册他们正在观察的对象,以便他们可以在事件中得到通知。

在您的具体情况下,如果您希望LocationUpdateHandler将信息推送到HelloAndroid,则必须了解HelloAndroid。所以你的LocationUpdateHandler至少应该包含对HelloAndroid的引用,但为了概括它,它应该有一个List个观察者,它们都实现了一个包含一个可以被调用的回调函数的公共接口只要LocationUpdateHandler有更新。