我正在使用Java创建一个Android应用程序。我有一个名为“运动”的布尔变量。我想创建一个在“运动”值发生变化时触发的事件。任何正确方向的指针都会很棒。谢谢
答案 0 :(得分:5)
我认为变量并不孤单。它作为一个班级成员 - 对吧?因此,侦听器接口将嵌套在该类中,并且该类将具有侦听器的成员变量和setBooChangeListener方法。并且对变量的每次更改(我希望它不公开)你会调用监听器,如果有的话。这就是它。
class C
{
private boolean mBoo; //that's our variable
public interface BooChangeListener
{
public void OnBooChange(boolean Boo);
}
private BooChangeListener mOnChange = null;
public void setOnBooChangeListener(BooChangeListener bcl)
{
mOnChange = bcl;
}
}
没有办法让系统(Java)监视变量并在侦听器发生更改时自动触发它。没有魔力。
答案 1 :(得分:0)
我希望我可以将其添加为注释...我同意上面的Seva大部分内容,但是,考虑将该类作为bean并实现PropertyChangeListener接口:
http://docs.oracle.com/javase/1.4.2/docs/api/java/beans/PropertyChangeListener.html
bean属性确实可以以这种方式绑定和监视。在javafx 2.0中,Oracle在属性和UI元素之间添加了一些非常先进的机制,我真的希望这可以分支到核心API,并以某种方式可用于Android开发人员。如果JavaFX 2.0对于游戏来说太晚了,我们可能会在核心中获得一些更现代的范式转换,所以这样的情况可以通过简单合理的方式实现。