如何在加载的所有内容中注入 activity?

How to inject the activity with every thing loaded?

我想将我的 activity class 注入另一个第三方 class,如下所示,

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 class,它在这里为我提供了很大的背景,

@Module
public class AppModule {
static Application mApplication;

public AppModule(Application application) {
    mApplication = application;

}

@Provides
@Singleton
Application providesApplication() {

    return mApplication;
}
}

我可以将上述上下文转换为其中一个活动,转换为我的 class 的构造函数吗?如果可以,怎么办?或者我应该为它定义另一个提供者吗?

这是我的组件

@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;
}

但是我不知道,如何传递参数来构建组件

您将需要添加另一个提供程序方法。

@Module
public class AppModule {
  private final Application application;
  private final LoginActivity loginActivity;

  public AppModule(Application application, LoginActivity loginActivity) {
    this.application = application;
    this.loginActivity = loginActivity;
  }

  @Provides
  @Singleton
  Application providesApplication() {
    return mApplication;
  }

  @Provides
  @Singleton
  LoginActivity provideLoginActivity() {
    return loginActivity;
  }
}