2016-07-20 5 views
0

を動作しない、アンドロイドオブザーバー方法更新私は私のメインクラスでは、最近、オブザーバーパターン</p> <p>を使用

MainActivity.class

static private AutoObservable observable; //global variable 
private Agency agency = null; //global variable 

@Override 
protected void onStart() { 
    super.onStart(); 
    observable = agency; 
    observable.addObserver(new Observerclass(agency.RoomName())); 
} 

AutoObservable.class

public class AutoObservable extends Observable { 
@Override 
public void notifyObservers(Object data) { 
    super.setChanged(); 
    super.notifyObservers(data); 
    super.clearChanged(); 
} 
} 

Observerclass。クラス

public class Observerclass implements Observer { 
    private final String roomName; 
    public Observerclass(String roomName) { 
     this.roomName = roomName; 
    } 

    @Override 
    public void update(Observable observable, Object o) { 
     . . . // not work .. 
    } 

おそらく、許し問題ですか? 私には助けてください。

答えて

0

あなたはnotifyObservers()を上書きするので、代わりにAutoObservable

@Override 
public void notifyObservers(Object data) { 
    super.setChanged(); 
    super.notifyObservers(data); 
    super.clearChanged(); 
} 

からこのコードブロックを削除し、AutoObservable.java

public void onSomeEvent() { 
    setChanged(); 
    notifyObservers(data); 
} 

そして、

よう MainActivityコール Observerインスタンスからにのような何かをする必要はありません。
observable.onSomeEvent(); 
+0

ありがとう、私は質問があります。 'notifyObservers(data)'データは 'onSomeEvent(Object data)'ですよね? – chohyunwook

+0

はい、これは、異なるオブザーバから異なるデータを渡す場合に意味があります。 – Krrishnaaaa

関連する問題

 関連する問題