Вызов метода фрагментации из Activity

У меня есть два разных фрагмента, и они оба будут использовать два разных вида деятельности. В макете действия есть один фрейм-макет для использования в качестве контейнера фрагментов.

Которые;

Фрагменты: MapFragment, ListFragment

Деятельность: HomeActivity, SearchActivity.

Давайте поговорим о HomeActivity;

HomeActivity будет вводить ListFragment и MapFragment в onCreate of activity и нажимать вложенные фрагменты на его макет (сначала фрагмент списка), и после этого активность вызовет метод презентатора внедренного фрагмента, чтобы показать результат службы в списке или карте.

коды; Сторона фрагмента;

@CustomScope @Component(dependencies = NetComponent.class, modules = {ChallengeListFrgModule.class, ChallengeRepositoryModule.class}) public interface ChallengeListFrgComponent{ void inject(ChallengeListFragment fragment); } 

_

  @Module class ChallengeListFrgModule(private val mView: ChallengeListFrgContract.View) { @Provides internal fun providesChallengeListFrgContractView(): ChallengeListFrgContract.View { return mView } } 

ListFrgPresenter:

 public class ChallengeListFrgPresenter implements ChallengeListFrgContract.Presenter { //region Variables ChallengeListFrgContract.View mView; ChallengeRepository challengeRepository; // Application application; private ChallengeSearchCriteria challengeSearchCriteria; //endregion //region Constructer @Inject public ChallengeListFrgPresenter(ChallengeRepository challengeRepository, ChallengeListFrgContract.View mView) { this.mView = mView; this.challengeRepository = challengeRepository; } //endregion //region Override Methods @Override public void load() { } @Override public void clearChallenges() { mView.clearChallenges(); } } 

ChallengeListFragment:

 @Singleton class ChallengeListFragment/*@Inject*/ : BaseFragment(), ChallengeListFrgContract.View { @Inject lateinit var challengeListFrgPresenter: ChallengeListFrgPresenter ///... override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) initComponent() } fun initComponent() { DaggerChallengeListFrgComponent.builder() .netComponent((activity.applicationContext as DuupleApplication).netComponent) // crash .challengeListFrgModule(ChallengeListFrgModule(this as ChallengeListFrgContract.View)) .challengeRepositoryModule(ChallengeRepositoryModule(activity)) .build() .inject(this) } } 

Вид деятельности:

HomeActivityComponent:

 @CustomScope @Component(dependencies = NetComponent.class, modules = { HomeActivityModule.class, HomeFragmentManagerModule.class, ChallengeListFrgModule.class, HomeNearbyMapFrgModule.class }) public interface HomeActivityComponent { Context context(); void inject(HomeActivity activity); } 

HomeActivityModule;

 @Module public class HomeActivityModule { private final HomeActivityContract.View mView; private final Context context; public HomeActivityModule(HomeActivityContract.View mView, Context context) { this.mView = mView; this.context = context; } @Provides @CustomScope Context provideContext() { return context; } @Provides @CustomScope HomeActivityContract.View providesActivityContractView() { return mView; } @Provides @CustomScope ChallengeListFragment providesChallengeListFragment() { return new ChallengeListFragment(); } @Provides @CustomScope HomeNearbyMapFragment providesHomeNearbyMapFragment() { return new HomeNearbyMapFragment(); } } 

HomeActivity:

 public class HomeActivity extends DrawerActivity implements NavigationView.OnNavigationItemSelectedListener, HomeActivityContract.View { //region widgets Toolbar appToolbar; ImageView imageViewHamburger; private DrawerLayout drawerLayout; //endregion //region variables @Inject ChallengeListFragment challengeListFragment; @Inject HomeNearbyMapFragment homeNearbyMapFragment; @Inject ChallengeListFrgPresenter challengeListFrgPresenter; @Inject HomeNearbyMapFrgPresenter homeNearbyMapFragmentPresenter; //... @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_home); initComponent(); ///... pushFragment(challengeListFragment, FragmentHelper.homeListFragmnetIndex); } protected void initComponent() { DaggerHomeActivityComponent.builder() .netComponent(((DuupleApplication) getApplicationContext()).getNetComponent()) .homeActivityModule(new HomeActivityModule(this, this)) .challengeListFrgModule( new ChallengeListFrgModule((ChallengeListFrgContract.View) challengeListFragment)) .homeFragmentManagerModule( new HomeFragmentManagerModule(HomeActivity.this, manager, R.id.placeHolder_HomeAct)) .homeNearbyMapFrgModule( new HomeNearbyMapFrgModule((HomeNearbyMapFrgContract.View) homeNearbyMapFragment)) .build() .inject(this); } } 

Обновление: проблема; Мне нужно добавить challengeListFragment в HomeActivity по методу initComponent, также мне нужно предоставить объект challengeListFragment для ChallengeListFrgModule как параметр в том же месте. Я думаю, что проблема возникла здесь. Перед завершением инъекции объекта ChallengeListFragment запускается конструктор ChallengeListFrgModule. Как я могу это исправить