[包教包会]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

你可能感兴趣的:([包教包会]dagger2使用教程(三)module加参数)