1

Javaを使用してAndroidアプリケーションを作成しています。「movement」というブール変数があります。「movement」の値が変わったときにトリガーするイベントを作成したい。正しい方向へのポインタは素晴らしいでしょう。ありがとうございました

4

2 に答える 2

6

変数だけではないと思います。それはクラスのメンバーとして存在します-そうですか?したがって、リスナーインターフェイスはそのクラスにネストされ、クラスにはリスナーのメンバー変数と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;
    }

    public void setBoo(boolean b)
    {
         mBoo = b;
         if(mOnChange != null)
             mOnChange.onBooChange(b);
    }
}

システム(Java)に変数を監視させ、変数が変更されるたびにリスナーを自動的に起動させる方法はありません。魔法はありません。

于 2012-04-03T20:45:49.417 に答える
0

これをコメントとして追加できればと思います...上記のSevaに大部分同意しますが、クラスをBeanにして、PropertyChangeListenerインターフェイスを実装することを検討してください。

http://docs.oracle.com/javase/1.4.2/docs/api/java/beans/PropertyChangeListener.html

Beanのプロパティは、実際にこの方法でバインドおよび監視できます。javafx 2.0で、オラクルはプロパティとUI要素の間でこれを行うためのいくつかの非常に高度なメカニズムを追加しました。これがコアAPIに分岐し、Android開発者が何らかの形で利用できるようになることを本当に望んでいます。JavaFX 2.0がゲームに遅すぎる場合は、少なくともコアでより近代的なパラダイムシフトが発生する可能性があるため、このような状況は単純で合理的な方法で実装できます。

于 2012-04-03T20:55:29.897 に答える