不推荐使用"ViewModelProviders".将生命周期扩展从2.1.0升级到2.2.0-alpha05之后 [英] 'ViewModelProviders' is deprecated. After upgrading lifecycle-extensions:2.1.0 to 2.2.0-alpha05
本文介绍了不推荐使用"ViewModelProviders".将生命周期扩展从2.1.0升级到2.2.0-alpha05之后的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
Android Studio->新建项目->选择标记的活动".
Android Studio -> New Project -> Choice "Tabbed Activity".
在将生命周期扩展从2.1.0升级到2.2.0-alpha05之后,不推荐使用ViewModelProviders. 在简单的情况下,它可以由"by viewModels()"替换 例如:
After upgrading lifecycle-extensions from 2.1.0 to 2.2.0-alpha05 ViewModelProviders is deprecated. In simple cases it replaceable by "by viewModels()" for example:
plHlFrModel = ViewModelProviders.of(this).get(PlHlFrModel::class.java)
替换为:
private val plHlFrModel by viewModels<PlHlFrModel>()
但是我不知道该如何替换:
But I can't figure out how to replace this one:
pageViewModel = ViewModelProviders.of(this)
.get(PageViewModel::class.java).apply {
setIndex(arguments?.getInt(ARG_SECTION_NUMBER) ?: 1)
}
以"by viewModel"形式在哪里放置apply {}块? 也许还有另一种方法?
where and how to place apply{} block in a "by viewModel" form? Maybe there is another way?
推荐答案
ViewModelProviers
is deperecated, we just use ViewModelProvider.
pageViewModel = ViewModelProvider(this)
.get(PageViewModel::class.java).apply {
setIndex(arguments?.getInt(ARG_SECTION_NUMBER) ?: 1)
}
使用委托
private val pageViewModel by viewModels<PageViewModel>()
//function scope
pageViewModel.setIndex(arguments?.getInt(ARG_SECTION_NUMBER) ?: 1)
这篇关于不推荐使用"ViewModelProviders".将生命周期扩展从2.1.0升级到2.2.0-alpha05之后的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文