好吧,所以我之前使用過觀察者,我也遵循完全一樣的方法,但由於某種原因,我的觀察者中的更新方法根本沒有被調用。在Java中可觀察不能正常工作?
在我的Android應用程序活動:
public void newGame(View view)
{
poleLeft.clear();
}
在我極類:
public void clear()
{
stack.clear();
size = 0;
head = 0;
setChanged();
notifyObservers();
}
在我看來類:
private class PoleObserver implements Observer
{
public void update(Observable observable, Object data)
{
postInvalidate();
}
}
和:
leftPole.addObserver(new PoleObserver());
基本上,我想要做的就是在極點(poleLeft)上有一定數量的項目,將其清除,然後讓應用程序視圖重繪以反映這些更改。但是,當我單擊按鈕時,極點被清除,但視圖不會改變,並且在更新方法中放置System.out.println將永遠不會被輸出,因此它永遠不會被運行。爲什麼會這樣?
也許發佈你的addObserver和notifyObservers實現呢? – kabuko
我正在使用內置的Java實現。 http://docs.oracle.com/javase/1.4.2/docs/api/java/util/Observable.html – Kyle
等一下,你確定它沒有運行? System.out.println在Android中並不常用。嘗試在那裏設置斷點或使用Log.d(「Pole」,「Observer updated」);並查看LogCat。 – kabuko