2 回答
TA贡献1783条经验 获得超4个赞
要注入构造函数,Dagger 必须知道从哪里获取传递给它的参数,即您必须提供 HomeView homeView, HomeInteractor homeInteractor
因此,还要创建用于提供其他依赖项的方法:
@Provides
static HomeView provideHomeView() {
return ...
}
@Provides
static HomeInteractor provideHomeInteractor() {
return ...
}
TA贡献1876条经验 获得超7个赞
我对 dagger 2 的 android 扩展了解不多,但据我所知,有两种方法可以实现您正在寻找的结果。
在相关组件中,您可以使用您的类型指定一个方法:
interface SomeComponent {
HomePresenter presenter(); // Method name does not matter here, only the type
}
并像这样访问它
class Home {
HomePresenter presenter;
void initialize() { //This could be your onCreate or wherever you typically inject
presenter = getSomeComponent().presenter();
}
}
或者,如果您为 Home 对象指定了一个注入方法,则可以请求它:
interface SomeComponent {
void inject(Home home);
}
class Home {
@Inject HomePresenter presenter;
void initialize(){
getSomeComponent().inject(this);
}
}
在这两种情况下,您都必须确保Component包含适当的Modules。
添加回答
举报