ViewModelProviders 找不到怎么办?

有的小伙在刚开始用ViewModel的时候照着文档写下:

  MyViewModel model = ViewModelProviders.of(this).get(MyViewModel.class);

但是提示ViewModelProviders这个类找不到怎么回事呢?

网上乱说一堆,是因为缺少依赖,sdk中默认包含的了ViewModel但是没有包含扩展:

 api "android.arch.lifecycle:extensions:1.1.1"

加上就好了

2019年12月11日 更新:
在androidx的新版本中,ViewModelProviders已经弃用了哦,

inline fun <reified VM> IVMView<*>.obtainViewModel(view: IVMView<*> = this): VM where VM : ViewModel, VM : IViewModel {
    if (view is FragmentActivity) {
        return ViewModelProvider(view).get(VM::class.java)
    } else if (view is Fragment) {
        return ViewModelProvider(view).get(VM::class.java)
    }
    throw IllegalStateException("IView implementation mast be Fragment or FragmentActivity")
}

kotlin项目直接依赖api "androidx.lifecycle:lifecycle-viewmodel-ktx:$lifecycle_version"就可以了,使用androidx.lifecycle.ViewModelProvider创建就可以了.

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值