2
私は新しいdagger.androidメソッドを使用してアクティビティを注入していますが、Activity
をクラスに注入するにはどうすればいいですか?たぶん、現在の活動を必要とNavigator
クラス:dagger.androidを使って別のクラスにアクティビティを注入するにはどうすればいいですか?
package com.abydos.messenger.ui
import android.app.Activity
import com.abydos.messenger.ui.register.RegisterActivity
import org.jetbrains.anko.startActivity
import javax.inject.Inject
class Navigator @Inject constructor(private val activity: Activity) {
fun register() {
activity.startActivity<RegisterActivity>()
}
...
}
そしてActivityBindingModule.kt
package com.abydos.messenger.di
import com.abydos.messenger.ui.register.RegisterActivity
import dagger.Module
import dagger.android.ContributesAndroidInjector
@Module
abstract class ActivityBindingModule {
@ContributesAndroidInjector
abstract fun contributeRegisterActivity(): RegisterActivity
...
}
にたぶん、それぞれの活動のためにこのような何かがうまくいくかもしれませんか?
@Binds abstract fun bindActivity(yourActivity: YourActivity): Activity
しかし、私はすべての活動のためにこれを記述することのアイデアを好きではない、より良い方法はありますか?
:
そして、あなたのActivityBindingModuleでは? – finki
あなたは答えを見つけたことがありますか? – AJay