[包教包会]dagger2使用教程(三)module加参数

上次的module是没有参数的,下面演示在Activity中通过module加入参数
新建两个需要注入的类

public class CokeCola {
    String brand = "";

    @Inject
    CokeCola(String brand) {
        this.brand = brand;
    }
}
public class Shuijiao {
    String type = "羊肉";

    @Inject
    public Shuijiao(String type) {
        this.type = type;
    }
}

再建一个module来提供这两个类

@Module
public class ThirdActivityModule {
    String brand;
    String type;

    public ThirdActivityModule(String brand, String type) {
        this.brand = brand;
        this.type = type;
    }

    @Provides
    public CokeCola offerCola() {
        return new CokeCola(brand);
    }

    @Provides
    public Shuijiao offerShuijiao() {
        return new Shuijiao(type);
    }
}

此module的构造方法有两个参数,分别对应两个需要注入的类的参数。
component和之前几乎相同,ctrl+ f9,
然后,就可以在Activity中为要注入的类添加参数了。

 DaggerThirdActivityComponent
                .builder()
                .thirdActivityModule(new ThirdActivityModule("可口可乐", "羊肉"))
                .build()
                .inject(this);

demo地址 https://github.com/eminfan/DaggerDemo

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容