繁体   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