2011-08-11 4 views
0

私はアンドロイド(およびJava)を使い慣れていますが、オブジェクト間の通信メカニズムは何か不思議です。プライベートメンバーの値を監視したい場合は、プライベートメンバーの値を変更する場合は、メソッドをトリガーする必要があります。ユーザー定義のイベントを聞くにはどうすればいいですか? (またはオブジェクト間で通信するメカニズムは何ですか)

私はUIイベントのためにイベントリスナーがあることを知っています。しかし、それがマウスのクリックではなく、私的なメンバーの価値の変化ならどうでしょうか?私はインテント/放送受信機を試しましたが、それは私がしたいことではないと思います。

ありがとうございました!

+1

を変更されたことSubscriberに通知するためにそのインターフェイスのSomeMethodメソッドを呼び出すことができます。 –

+0

ありがとうございます。しかし、もっと具体的になるかもしれませんか? please。.. – Rachel

+0

http://www.exampledepot.com/egs/java.util/custevent.htmlこれをチェックして、あなたの財布のリスナーにそれを修正してください(あなたが変数の値を変更したと言ったように) –

答えて

0

ここでは、パブリッシャ加入者ベースのアプローチを使用できます。プライベート(Publisher)メンバーを含むクラスには、RegisterForChangeというメソッドがあります。このメソッドでは、あるインタフェースISomeInterfaceをパラメータとし、Subscribe rクラスがそのインタフェースを実装しています。プライベートメンバに変更があったら、あなたは私のプライベートメンバーは、あなたのクラスでそれをオーバーライドし、独自の `interface`を作成

//pseudocode 
    public interface ISomeInterface 
    { 
     SomeMethod(); 
    } 

    class Publisher 
    { 
     RegisterForChange(ISomeInterface inter) 
     { 
      inter.SomeMEthod(); 
     } 

     //whenever there is change call 
     inter.SomeMethod(); 
    } 

    class Subsscriber implements ISomeInterface 
    { 
     //inside this class register for change by calling 
     Publisher.RegsiterForChange(this); 

     // this method will be called whenever there is change in private member 
     public SomeMethod() 
     { 
     } 
    } 
+0

Java標準ライブラリは、サブスクリプション/パブリッシュの仕組みを処理する関数です。詳細はJavaクラスObservableおよびインタフェースObserverを参照してください。 –

+0

私はJavaで新しいです、ありがとう、間違いなくそれを見てみましょう –

関連する問題