我刚开始使用Dagger并尝试使用dagger2进行DI,但看起来它给我的活动注入了一个空演示器。下面是我的代码。
公共类TasksActivity扩展AppCompatActivity{
@Inject
TasksContract.Presenter mTasksPresenter;
......
@Override
protected void onCreate(Bundle savedInstanceState) {
... ...
DaggerTasksComponent.builder()
.appComponent(MyApp.getAppComponent())
.tasksModule(new TasksModule())
.build()
.inject(this);
... ...
}
@Module
public class TasksModule {
@Provides
@ActivityScoped
TasksContract.Presenter providePresenter(TaskDataRepository taskDataRepository, TasksContract.View view) {
return new TasksPresenter(taskDataRepository, view);
}
@Provides
@ActivityScoped
TasksContract.View provideView() {
return new TasksFragment();
}
}
@ActivityScoped
@Component (modules = TasksModule.class, dependencies = AppComponent.class)
public interface TasksComponent {
void inject(TasksActivity activity);
}
在您的TaskModule上创建一个构造函数,传递这个参数taskDataRepository和view,然后在您的TaskModule上使用它。因此您的初始化应该如下所示
DaggerTasksComponent.builder()
.appComponent(MyApp.getAppComponent())
.tasksModule(new TasksModule(taskDataRepository, view))
.build()
.inject(this);
我学习了Dagger2,并尝试使用MVVM制作应用程序。我根据方案创建了Dagger类(模块、组件、BaseApplication),但当我尝试将QuotableAPI对象注入ViewModel时,Dagger不会生成DaggerAppComponent类(在ViewModel构造函数中没有QuotableAPI生成)。 报价视图模型 应用程序模块 应用组件 基础应用 ViewModelFacto
本文向大家介绍Dagger2 Android依赖注入学习笔记,包括了Dagger2 Android依赖注入学习笔记的使用技巧和注意事项,需要的朋友参考一下 前言 最近在用 MVP + RxJava + Retrofit 写项目,觉得相对于其他的开发框架,这的确是给我们带来了很多方便,但是在网上搜寻相关资料的时候,总是能看到 MVP + RxJava + Retrofit + Dagger 这样的搭
我试图将一组房间组件注入存储库,存储库本身使用Dagger2注入ViewModel(在片段中)。 代码如下。 片段: 视图模型: 我的存储库: 最后,对于我的匕首类,我有两个模块: 和我的AppComponent: Dagger编译正常,我可以访问并构建它。但是是不可访问的(检查类将其显示为私有),我需要实际注入依赖项的方法也是如此。结果我得到错误: 我该如何解决这个问题?
嗨,当我尝试在下面的类中注入Doa接口时,我正在使用mvvm和dagger2 我的接口类
我已经编写了一个EJB3业务逻辑并部署在GlassFish下。现在,我将通过同一个容器中的客户机,用@EJB注入接口来测试它。 数据源bean是一个在构造函数中设置连接并通过get()方法释放的无状态bean
问题内容: 我在Android应用程序中将Dagger2用于DI。我发现我必须为使用@Inject字段的每个类编写注入方法。有没有一种方法可以只注入父类,而不必在每个子类上调用inject?以活动为例。我有一个“ 每个活动都从中延伸”的内容。有没有一种方法,我可以在BaseActivity的组件中创建一个注入方法,然后在BaseActivity的onCreate中调用inject,子活动中的@in