簡體   English   中英

Android Hilt 將接口注入到由活動實現的視圖模型

[英]Android Hilt injecting interface to a viewmodel impelemented by an activity

DI 新手,使用 Hilt 我正在嘗試將 activty 實現的接口注入到這樣的視圖模型中:

活動 class:

@AndroidEntryPoint
class MainActivity  : AppCompatActivity(), AnInterface{
    private val mainViewModel : MainViewModel by viewModels()
    // .....
}

視圖模型:

@HiltViewModel
class MainViewModel : ViewModel() @Inject constructor(anInterface : AnInterface){

}

模塊:

@Module
@InstallIn(ActivityComponent::class)
class ActivityModule {
    @Provides
    fun provideAnInterface(activity: Activity) : AnInterface = activty as AnInterface

}

給我錯誤:

AnInterface cannot be provided without an @Provides-annotated method.

不應將 Activity 的引用傳遞給ViewModel ,這顯然違反了 MVVM 的松耦合特性。 依賴在 MVVM 中向內流動。 改用LiveData來觀察 Activity/Fragment 中ViewModel的數據,不要使用接口。

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM