下面是Activity,它仍在使用旧的DI模型,并且我正尝试迁移到Dagger2(使用dagger-android)。我想注入Presenter,如您所见,其中一个依赖项是“ NewProjectDisplayer”,它是活动中的自定义视图。
这是我想提供给演示者的“ NewProjectDisplayer”
我有一个模块(AppModule),它提供了诸如ProjectService,LoginService等的全局依赖项。
下面是我遇到麻烦的NewProjectModule。与活动相关的依赖项之一是“ NewProjectDisplayer”。而且我不知道该如何提供..
@Module
public class NewProjectActivityModule {
@Provides
NewProjectDisplayer provideNewProjectDisplayer(View view) {
// ??? return view.findViewById(R.id.create_project_view);
}
@Provides
NewProjectNavigator provideNewProjectNavigator(BaseActivity baseActivity) {
return new AndroidNewProjectNavigator(baseActivity);
}
@Provides
NewProjectPresenter provideNewProjectPresenter(NewProjectDisplayer displayer, //
ProjectService projectService,
LoginService loginService,
UserService userService,
NewProjectNavigator navigator, //
PermissionHandler permissionHandler,//
CropImageHandler cropImageHandler,//
RxSchedulers schedulers) {
return new NewProjectPresenter(displayer, projectService, loginService,
userService, navigator, permissionHandler, cropImageHandler, schedulers);
}
}
如何提供此“ NewProjectDisplayer”,以便可以创建和插入Presenter?我正在使用Dagger-android。
您无法提供或findViewById
与之兼容的活动模块,dagger-android
原因之一是该模块是在视图实际位于层次结构之前创建的。此外,这样做是不是一个好的做法,但如果你仍然相信你应该这样做,你可以尝试创建一个子组件将具有提供的视图相关的模块,它有后创建setContentView
,作为建议通过@elmorabea。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句