美文网首页
Dagger2在MVPArms中的使用

Dagger2在MVPArms中的使用

作者: 番茄tomato | 来源:发表于2019-08-19 17:21 被阅读0次

首先最开始不了解dagger2以外和butterkinfe一样,直接拿来用就是了,就像是这样(以在activity中注入一个adapter为例):

    @Inject
    RecyclerView.Adapter mAdapter;

只有这句话,发现没有报错,满心欢喜的使用时却编译不通过。
Ok,老老实实学dagger2,这才发现要配置module和相关依赖
MVPArms全家桶已经帮我创建好了module和compoent,甚至compoent都不需要作修改。好的,今天我们先把最基础的使用跑通:
在moodule中加入如下代码:

    @ActivityScope
    @Provides//适配器需要传入List数据才能建立对象
    static List<NewsBean.ResultBean> provideNewsList(){
        return new ArrayList<>();
    }

    @ActivityScope
    @Provides//建立适配器对象
    static RecyclerView.Adapter provideNewsAdapter(List<NewsBean.ResultBean> list){
        return new NewsAdapter(list);
    }

然后在对应的activity中加入:

    @Inject//数据
    List<NewsBean.ResultBean> mData;
    @Inject//适配器
    RecyclerView.Adapter mAdapter;

然后贴出自动生成的compoent代码:

@ActivityScope
@Component(modules = NewsModule.class, dependencies = AppComponent.class)
public interface NewsComponent {
    void inject(NewsActivity activity);

    @Component.Builder
    interface Builder {
        @BindsInstance
        NewsComponent.Builder view(NewsContract.View view);

        NewsComponent.Builder appComponent(AppComponent appComponent);

        NewsComponent build();
    }
}

就可以直接使用了,不需要再New一个对象,此处只是很简单的直接使用,正规完整的学习dagger2请移步:
https://www.jianshu.com/p/39d1df6c877d
https://www.jianshu.com/p/2cd491f0da01(错别字多,但能看懂)

相关文章

网友评论

      本文标题:Dagger2在MVPArms中的使用

      本文链接:https://www.haomeiwen.com/subject/nbjesctx.html