我試圖用GWT/GIN做我的第一步。GWT - 綁定activityMapper與GIN不工作
我已經從google下載了hellomvp示例,並按照tutorial開始使用杜松子酒。
我的問題是關於這一行的HelloGinModule級的配置法:
bind(ActivityMapper.class).to(AppActivityMapper.class).in(Singleton.class);
在我的角度來看,應該我的課「AppActivityMapper」綁定作爲活動ActityManager。但實際上,類構造函數(或類的任何方法)從不被調用,所以觸發的事件不會被捕獲。
類AppActivityMapper看起來是這樣的:
public class AppActivityMapper implements ActivityMapper {
Provider<HelloActivity> helloActivityProvider;
Provider<GoodbyeActivity> goodbyeActivityProvider;
@Inject
public AppActivityMapper(final Provider<HelloActivity> helloActivityProvider, final Provider<GoodbyeActivity> goodbyeActivityProvider) {
this.helloActivityProvider = helloActivityProvider;
this.goodbyeActivityProvider = goodbyeActivityProvider;
}
@Override
public Activity getActivity(Place place) {
if (place instanceof HelloPlace) {
return helloActivityProvider.get();
} else if (place instanceof GoodbyePlace) {
return goodbyeActivityProvider.get();
}
return null;
}
}
在我的例子,從我的瀏覽級這段代碼是點擊鏈接後,叫:
presenter.goTo(new GoodbyePlace(name));
該事件被觸發的事件總線。但沒有任何反應。
在此先感謝
好吧,我認爲這是關鍵。我沒有得到ActivityMapper和ActivityManager的區別。 你能告訴我,定義活動管理器的最佳做法是什麼? – Lodger 2012-02-09 14:06:17
@Lodger我已經更新了我的帖子 – jusio 2012-02-09 14:31:47
另一個選擇,也許更貼近使用Gin/Guice的想法是在ActivityManager的模塊中定義一個Provider或@Provides方法。 gwt/gin項目示例中的一個例子https://github.com/niloc132/tvguide-sample-parent/blob/master/tvguide-client/src/main/java/com/acme/gwt/client/ioc/ TvGuideClientModule.java#L98 – 2012-02-10 19:13:17