Android 如何在自定义视图中使用匕首2?

Android 如何在自定义视图中使用匕首2?,android,dependency-injection,dagger-2,Android,Dependency Injection,Dagger 2,我阅读了文档,发现可以使用 “HasActivityInjector”和带有“HasFragmentInjector”的片段对象,但如何注入视图对象?就像我用自定义视图代替片段一样,如何在其中注入?您可以在组件内部声明inject方法,如 fun inject(view: YourCustomView) 然后,当您在某些活动或片段上使用视图时,调用 override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {

我阅读了文档,发现可以使用
“HasActivityInjector”和带有“HasFragmentInjector”的片段对象,但如何注入视图对象?就像我用自定义视图代替片段一样,如何在其中注入?

您可以在组件内部声明
inject
方法,如

fun inject(view: YourCustomView)
然后,当您在某些活动或片段上使用视图时,调用

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) {
        super.onViewCreated(view, savedInstanceState)
        yourCustomView.inject(component)
}
组件
可以在片段的\活动的
onCreate
中从您的注入中获得

在您看来,您需要实现如下
inject
方法:

fun inject(component: Component) {
        component.inject(this)
    }

仅此而已,现在您可以在自定义视图中插入组件中的所有内容。

让我澄清一下,您想在自定义视图中插入一些对象吗?正是这样,我的朋友我添加并编辑了以下答案:如果有问题,请告诉我,我刚刚意识到我给了您用kotlin编写的示例。谢谢,但我猜,您以旧的方式编写了答案,但如何使用“AndroidInjection.Injection(this);”、@ContributesAndroidInjector、AndroidInjector.Builder注入视图?抱歉,我只能分享我编写的一个视图,我不知道您在问什么。我使用的是2.8 dagger版本,可能有点旧,但仍然可以使用(这是企业版,我不想在发布后升级任何不需要的东西)。有很多视图是通过这种方式注入的。您现在无法使用dagger2.12获取活动的组件,这个解决方案现在将如何工作?