上次的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);