【发布时间】:2018-01-23 16:59:24
【问题描述】:
您好,我正在尝试在我的 Android Fragment 类上注入依赖项,就像我为我的活动所做的那样,它似乎没有将对象注入到我的片段中的变量中。
这是我的绑定模块
@Module
abstract class HomeAndroidBinding{
/**
* Activity bindings here
*/
@ContributesAndroidInjector(modules = [MyModule ::class])
@MyScope
abstract fun bindHomeActivity() : HomeActivity
/**
* Fragment Bindings here
*/
@ContributesAndroidInjector(modules = [MyModule ::class])
@MyScope
abstract fun bindHomeFragment() : HomeFragment
}
这是我的片段类
class HomeFragment : Fragment() {
@Inject
lateinit var productStorage: ProductStorageContract //error, not inialised
...
override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
productStorage.getData()
}
这是我的 ApplicationComponent 加载和绑定一切
@Singleton
@Component(modules = arrayOf(MyMainModule::class,
AndroidSupportInjectionModule::class,
HomeAndroidBinding::class,
))
interface ApplicationComponent : AndroidInjector<DaggerApplication> {
fun inject(myApplication: MyApplication)
override fun inject(instance: DaggerApplication)
@Component.Builder
interface Builder {
@BindsInstance
fun application(applicaton: MyApplication): Builder
fun build(): ApplicationComponent
}
}
productStorage 的相同 var 在 HomeActivity 上运行良好
【问题讨论】:
标签: android android-fragments dependency-injection dagger-2