私はGWT/GINで私の最初のステップをしようとしています。GWT - binding activityMapper with GIN not working
Googleからhellomvpのサンプルをダウンロードしてから、に従ってください.Ginを使い始めるには
私の問題はHelloGinModule級の通信設定方法では、この行についてです:私の視点で
bind(ActivityMapper.class).to(AppActivityMapper.class).in(Singleton.class);
それがアクティブActityManagerとして私のクラス「AppActivityMapper」をバインドする必要があります。 実際、クラスコンストラクタ(またはクラスの任意のメソッド)は決して呼び出されないので、起動されたイベントは捕捉されません。
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));
イベントがイベントに発射されますバス。しかし、何も起こりません。事前
ok、私はそれがポイントだと思います。私はActivityMapperとActivityManagerの違いを知りませんでした。 アクティビティマネージャを定義するベストプラクティスは何ですか? – Lodger
@Lodger私の投稿を更新しました – jusio
別のオプションは、おそらくGin/Guiceを使用するアイデアと緊密に従って、ActivityManagerのモジュールにプロバイダまたは@Providesメソッドを定義することです。サンプルgwt/ginプロジェクトの1つの例https://github.com/niloc132/tvguide-sample-parent/blob/master/tvguide-client/src/main/java/com/acme/gwt/client/ioc/ TvGuideClientModule.java#L98 –