Java android中是否有模型更改侦听器机制

Java android中是否有模型更改侦听器机制,java,android,Java,Android,我正在为一个体育应用程序设计一个android用户界面。 该应用程序的一个特点是,按钮和菜单项的文本会随着时间的推移而变化 游戏状态会不断进步。因此,您可以从设置游戏->开始上半场->半场->下半场->游戏结束等。按钮和菜单项文本将更改,以指示应用程序中的下一个有效操作 到目前为止,我正在通过观察状态的全局变量并在各种onCreate、onResume方法中基本上检查这一点来实现这一点。至少按钮是这样。不确定菜单项以及如何使其动态 现在我想一定有更好的方法在android上实现这一点?在swin

我正在为一个体育应用程序设计一个android用户界面。 该应用程序的一个特点是,按钮和菜单项的文本会随着时间的推移而变化 游戏状态会不断进步。因此,您可以从设置游戏->开始上半场->半场->下半场->游戏结束等。按钮和菜单项文本将更改,以指示应用程序中的下一个有效操作

到目前为止,我正在通过观察状态的全局变量并在各种onCreate、onResume方法中基本上检查这一点来实现这一点。至少按钮是这样。不确定菜单项以及如何使其动态

现在我想一定有更好的方法在android上实现这一点?在swing中,您可能有一个modelchangelistener,您可以在视图中注册为该监听器。android中是否存在类似的功能?我还知道,在Java中,你可以使用观察者模式,但我一直在寻找android内置的东西。我想这种情况相当普遍

但是如果没有,那么你必须自己做,这也是对我问题的一个可以接受的回答

提前谢谢。 弗兰克。

问得好

您必须实现自己的侦听器,然后可以在稍后创建的XML文件中使用
选择器。就像您在使用
按钮时一样
android:state\u pressed=“true”


编辑:然而,我真的建议你不要把时间花在这个任务上,因为这可以用任何其他更简单的方法来完成

Android没有任何特别的功能,比如
观察者
/
可观察者
——即使您也可以在Android中自由使用这些功能

问题是:您是否应该使用
Observer
/
Observable
-类?有些人说不,因为它要求您重写一个采用
对象
参数的
更新
-方法。这不太友好。其他人,喜欢它

反对者建议您编写自己的
Observer
类,并手动注册这些观察者。然后,每个
可观察的
都应该遍历
观察者
实例列表,以表示:

“嘿!这里有一个更新。”

你是说你不建议使用选择器,因为它太复杂了?你认为mayby是通过observer/observer模式还是代码中的其他机制来实现的更简单的方式?你好,Etienne,我认为我们已经跨越了observer/Observable的桥梁,因为我们都准备在系统的另一部分使用它。所以我们也可以在这个例子中使用它。我理解你的意思,你可以通过自己实现观察者模式来构建一个更好的面向对象的版本,但是出于速度和质量的考虑,我更喜欢使用预先存在的组件,而不是我自己的组件。所以我认为你的回答是说android没有提供机制,但Observer/Observable是实现这个方案的一种方法。因此,您提供了一个有效的答案。
java.util.Observable
不太适合Android,因为它不是一个接口,而是一个需要扩展的具体类,这与通常Android需要从特定的超类(如适配器、活动、视图或类似)派生的类相冲突。我将定义自己的观察者/可观察接口。