2017-07-15 43 views
2

我閱讀文檔並發現,我可以注入活動對象 「HasActivityInjector」和Fragment對象與「HasFragmentInjector」,但如何注入視圖對象?像我有自定義視圖而不是片段,如何注入它?如何使用Dagger 2自定義視圖?

+0

讓我澄清,你想在你的自定義視圖內注入一些對象? –

+0

正是這個,我的朋友 – Karamba

+0

我已經添加並編輯了答案,請讓我知道如果你有麻煩,我只是意識到我給你寫了用kotlin寫的例子。 –

回答

0

你可以聲明inject方法您的組件的內部像

fun inject(view: YourCustomView) 

,然後當您使用上的一些活動或片段來看,撥打

override fun onViewCreated(view: View?, savedInstanceState: Bundle?) { 
     super.onViewCreated(view, savedInstanceState) 
     yourCustomView.inject(component) 
} 

component可以內部片段的獲得活動的onCreate從您的注射。

在你看來,你需要實現inject方法是這樣的:

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

這一切,現在你可以注入你的自定義視圖裏面一切從您的組件。

+0

你現在不能使用dagger2.12獲得Activity的組件,現在該解決方案將如何工作? –

相關問題