0
我要注入我的活动类到另一个第三方类像下面,如何在加载每一件东西时注入活动?
public class LoginPresenter implements ILoginPresenter {
@Inject
LoginActivity view;
public void attemptLogin(String username, String password) {
if (view.getUserName().isEmpty()) {
//"view" here is always null, I dont know how to correctly inject it.
view.showUserNameEmptyError(R.string.USER_NAME_EMPTY_ERROR);
return;
}
}
这是我的AppModule类在这里提供了一个大的背景下对我来说,
@Module
public class AppModule {
static Application mApplication;
public AppModule(Application application) {
mApplication = application;
}
@Provides
@Singleton
Application providesApplication() {
return mApplication;
}
}
可我投上面的上下文转化为其中一个活动,进入我的类的构造函数,如果是的话,还是应该为其定义另一个提供者?
这是我的组件
@Singleton
@Component(modules = {AppModule.class, NetModule.class})
public interface NetComponent {
void inject(LoginPresenter presenter);
void inject(ILoginPresenter presenter);
}
更新: 我加入这个构造函数,并提供了它,我的AppModule
public AppModule(Application application, LoginActivity loginActivity) {
this.application = application;
this.loginActivity = loginActivity;
}
,但我不知道,如何传递参数来构建组件
但我怎么会通过上下文? DaggerNetComponent.builder() .appModule(new AppModule(this,/ *我应该在这里做什么?* /)) –
您将不得不在LoginActivity中构建您的AppModule,并为第二个参数添加“this”。 – ootinii
谢谢,但我会怎么做第一个参数呢,我更新了我的问题 –