0
나는 다음과 같은 제 3자가 클래스로 내 활동 클래스를 주입 할
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);
}
UPDATE입니다 : 내가
public AppModule(Application application, LoginActivity loginActivity) {
this.application = application;
this.loginActivity = loginActivity;
}
하지만 난 모르겠 어떻게 전달 내 Appmodule, 그것은이 생성자와 제공자를 추가 구성 요소를 구성하는 매개 변수
어떻게 컨텍스트를 전달합니까? DaggerNetComponent.builder() .appModule (새로운 AppModule (this,/* 여기서해야 할 일? * /)) –
LoginActivity에서 AppModule을 빌드하고 두 번째 매개 변수에 "this"를 추가해야합니다. – ootinii
고맙습니다.하지만 첫 번째 매개 변수에 대해 어떻게해야합니까? 내 질문이 –