以下はアクティビティです。まだ古いDIモデルを使用していますが、私はDagger2(dagger-android)に移行しようとしています。私はPresenterを注入したいと思います。あなたが見ることができるように、アクティビティのカスタムビューである「NewProjectDisplayer」が依存関係の1つです。Dagger2でビューを提供するには?
これは私がLoginServiceなどProjectService、のような世界的な依存関係を提供するモジュール(AppModuleを)持っているプレゼンター
に提供したい 'NewProjectDisplayer' です
以下は私が問題を抱えているNewProjectModuleです。アクティビティに関連付けられている依存関係の1つは、 'NewProjectDisplayer'です。プレゼンターを作成して注入することができるように、そして、私は
@Module
public class NewProjectActivityModule {
@Provides
NewProjectDisplayer provideNewProjectDisplayer(View view) {
// ??? return view.findViewById(R.id.create_project_view);
}
@Provides
NewProjectNavigator provideNewProjectNavigator(BaseActivity baseActivity) {
return new AndroidNewProjectNavigator(baseActivity);
}
@Provides
NewProjectPresenter provideNewProjectPresenter(NewProjectDisplayer displayer, //
ProjectService projectService,
LoginService loginService,
UserService userService,
NewProjectNavigator navigator, //
PermissionHandler permissionHandler,//
CropImageHandler cropImageHandler,//
RxSchedulers schedulers) {
return new NewProjectPresenter(displayer, projectService, loginService,
userService, navigator, permissionHandler, cropImageHandler, schedulers);
}
}
..私はそれを提供できるか見当がつかないどのように私はこの「NewProjectDisplayer」を提供することができますか?私は短剣アンドロイドを使用しています。
うん、それは、同じディスプレーヤーインターフェイスを実装して、それは本当に醜いコードを作成します。私は最も簡単なのは、すべてのビューをフラグメントと置き換えることだけだと思う。 – Linxy
コンストラクタの外側でビューのインスタンスを渡すこともできます。多くの人が 'attach()'と 'detach()'メソッドでこれを行います。 – mcassiano
ええ、 'attach(NewProjectDisplayer displayer).. 'を使って私のために働いた、ありがとう – Linxy