适用于Android的Java - 如何为布尔变量创建事件侦听器

时间:2012-04-03 20:34:41

标签: java android boolean event-listener

我正在使用Java创建一个Android应用程序。我有一个名为“运动”的布尔变量。我想创建一个在“运动”值发生变化时触发的事件。任何正确方向的指针都会很棒。谢谢

2 个答案:

答案 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对于游戏来说太晚了,我们可能会在核心中获得一些更现代的范式转换,所以这样的情况可以通过简单合理的方式实现。