如何在Dagger2中提供视图?

林西

下面是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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何从一个dagger2模块访问另一个dagger2模块中提供的SharedPreferences

如何提供相同类型的对象?Dagger2

如何通过Dagger2提供GoogleApiClient依赖关系?

Dagger2中的静态提供方法

如何在 Dagger2 中实例化我们的依赖图实例

如何在Dagger2 android中为ViewModel使用构造函数注入?

如何在扩展函数中获取Dagger2类属性?

Dagger2:如何在JUnit测试中使用@Inject?

如何在活动之间共享Dagger2子组件

Dagger2找不到提供的实例

Koin的Dagger2提供程序

dagger2中如何建立循环依赖模型?

如何使用Dagger2将ViewModel注入BottomSheetDialogFragment中?

如何使MVRX视图模型与dagger2一起使用?

如何使用Dagger2 @Inject AndroidViewModel?

如何重用Dagger2注入的AsyncTask?

如何使用dagger2子组件?

尝试使用Dagger 2实现MVP-如何在提供的演示者中获取对Activity的引用

Dagger2,为翻新实例提供不同的URL

Dagger2提供侦听器实例以注入服务

如何在Android中使用Dagger2依赖注入和Robolectric进行测试?

Dagger2:如何在Presenter类中注入改造模块

如何在仍使用Dagger2的情况下解决循环依赖关系?

Dagger2:如何在同一模块中使用@Provides和@Binds

如何在Android中使用Dagger2轻松注入活动对象?

如何在Java项目上的IntelliJ中使用Dagger2

如果它们位于不同的文件夹中,如何在Spring控制器中提供视图页面?

如何在请求中在 Angular 2 中提供自定义 RequestOptionsArgs?

如何在Angular 2中提供模拟服务进行开发(而非测试)?