Java 为什么我需要Hassandroidinjection来注入一个内部片段?
我有一个名为Java 为什么我需要Hassandroidinjection来注入一个内部片段?,java,android,kotlin,dagger-2,Java,Android,Kotlin,Dagger 2,我有一个名为Activity1的活动,然后里面有一个Fragment1都有@ContributeAndroidInjection,如果我的活动2想要注入Fragment1 为什么我需要实现hasAndroidJector并执行 @Inject lateinit var androidInjector: DispatchingAndroidInjector<Any> override fun androidInjector(): AndroidInjector<Any> =
Activity1
的活动,然后里面有一个Fragment1
都有@ContributeAndroidInjection
,如果我的活动2
想要注入Fragment1
为什么我需要实现hasAndroidJector
并执行
@Inject lateinit var androidInjector: DispatchingAndroidInjector<Any>
override fun androidInjector(): AndroidInjector<Any> = androidInjector
不管怎样,它都可以工作,因为我已经添加了一个模块,该模块在@ContributesAndroidInjector
中包含该片段。。。
是因为当我想向一个内部片段提供注入时,我需要hasAndroidInjector
?你的方法bindMyActivity2
不是抽象的,这是打字错误吗?不,我有像@模块接口功能模块{@ContributesAndroidInjector fun provideFragment():MyFragment}
我可能错了,但根据官方的dagger doc@ContributesAndroidInjector
必须应用于抽象方法我已经尝试过了。。。但是没有。我的意思是,我想在我的新活动中使用一个片段,在将其用于活动1之前,该片段已添加为@contributeandroidjector
,因此我需要演示者、repo等。。。但如果把它作为一个模块来添加,它已经有魔力了。。。我不知道为什么我需要额外的工具来进行hasAndroidInjection…@Steyrix知道吗?
@ContributesAndroidInjector(
modules = [ FragmentProvider::class]
)
fun bindMyActivity2: Activity2