Предположим, что у Activity есть NavigationView с 3 элементами {временная шкала, профиль, программы}
Итак, у нас есть 3 фрагмента
Я следую шаблону MVP, и у каждого фрагмента есть свой презентер, а для DI я использую Dagger2.
Я хочу ввести каждого докладчика в действие, когда каждый элемент щелкает в представлении навигации.
для каждого докладчика я создаю один модуль и компонент, подобные этому
@Module()
public class FooPresenterModule {
private final FooFragment view;
public FooPresenterModule(FooFragment view) {
this.view = view;
}
@FragmentScope
@Provides
public FooFragment provideView() {
return view;
}
}
и компонент
@FragmentScope
@Component(modules =FooPresenterModule.class)
public interface FooPresenterInjector {
void inject(MainActivity mainActivity);
}
в Activity вводить ведущего по полям ->
@Inject TimelinePresenterInjector mTimeLinePresenter;
@Inject ProfilePresenterInjector mProfilePresenter;
@Inject ProgramPresenterInjector mProgramPresenter;
и есть 3 функции для замены фрагмента ->
private void replaceTimelineFragment() {
TimeLineFragment fragment = TimeLineFragment.newInstance();
getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment).commit();
DaggerTimelinePresenterInjector.builder()
.timeLinePresenterModule(new TimeLinePresenterModule(fragment))
.build().inject(this);
}
функция замены фрагмента профиля ->
private void replaceProfileFragment() {
ProfileFragment fragment = ProfileFragment.newInstance();
getSupportFragmentManager().beginTransaction().replace(R.id.container, fragment).commit();
DaggerProfilePresenterInjector.builder()
.timeLinePresenterModule(new ProfilePresenterModule(fragment))
.build().inject(this);
}
но когда я перестраиваю проект, я получаю сообщение об ошибке
это неправильный шаблон? если да, то каков наилучший шаблон для внедрения другого ведущего в активность?