Я пытаюсь выполнить свои первые шаги с GWT/GIN.GWT - обязательная активностьMapper с GIN не работает
Я загрузил пример hellomvp из Google и последовал за этим tutorial, чтобы начать работу с gin.
Моя проблема заключается в этой линии в Configure-способе 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;
}
}
В моем примере это код из моего View-класса вызывается после нажатия на ссылку:
presenter.goTo(new GoodbyePlace(name));
Событие обжигали на событие автобус. Но ничего не происходит.
Заранее спасибо
ОК, я думаю, что это точка. Я не получил разницу между ActivityMapper и ActivityManager. Можете ли вы сказать мне, что лучше всего определить менеджера активности? – Lodger
@Lodger Я обновил свой пост – jusio
Другим вариантом, возможно, более тесно связанным с идеями использования Gin/Guice было бы определение провайдера или метода @Provides в модуле ActivityManager. Один из таких примеров из примера проекта gwt/gin https://github.com/niloc132/tvguide-sample-parent/blob/master/tvguide-client/src/main/java/com/acme/gwt/client/ioc/ TvGuideClientModule.java # L98 –