我有一個活動,需要另一個類的服務來檢索一些數據(「DataClass」)。這個數據類可以被調用來獲取數據,並在成功時觸發一個事件。 活動第一次需要數據在「開始」 - 解析當前帶來的狀態並相應地更新視圖。活動啓動方法未命中第一個事件
問題是,onDataEvent方法的活動不是第一次調用,而是在隨後的事件中調用。我檢查了事件的處理程序。準時第一個事件被解僱,這個活動被註冊到這個事件中。我也嘗試用構造函數註冊事件,但這不會改變。 那麼如何爲一個事件註冊一個活動,並在啓動方法內觸發並對其作出反應呢?或者一般如何實現這樣的用例。
編輯 在此期間,我試圖實現它像here但沒有成功。
這裏啓動的方法的代碼:
@Override
public final void start(final AcceptsOneWidget panel, final com.google.gwt.event.shared.EventBus eventBus) {
this.eb = new ResettableEventBus(eventBus);
if (!(pc.getWhere() instanceof DynamicTablePlace)) {
throw new IllegalStateException(CreateDynamicTableActivity.class.getName() + " should only be called on "
+ DynamicTablePlace.class.getName());
}
view.setPresenter(this);
this.eb.addHandler(DynamicTableHashResolvedEvent.TYPE, this);
stateResolver.resolveState(((DynamicTablePlace) pc.getWhere()).getTablehash(), eb); //this is triggering the event
panel.setWidget(view);
}
的onDynamicTableHashResolved(DynamicTableHashResolvedEvent事件)方法不叫第一次,但在所有後續事件。
請不要「在這裏」。包括[SSCCE](http://sscce.org)。 – 2012-04-24 13:32:19
如果我正確理解你的問題,你有一段代碼只需要在你的活動初始化時運行? – yair 2012-04-24 13:38:12
請附上您的活動的來源。 – cardamo 2012-04-24 13:41:05