Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Kotlin ViewModelProviders在2.2.0中不推荐使用_Kotlin_Android Jetpack_Android Viewmodel_Viewmodelproviders - Fatal编程技术网

Kotlin ViewModelProviders在2.2.0中不推荐使用

Kotlin ViewModelProviders在2.2.0中不推荐使用,kotlin,android-jetpack,android-viewmodel,viewmodelproviders,Kotlin,Android Jetpack,Android Viewmodel,Viewmodelproviders,目前我将androidx.lifecycle:lifecycle extensions版本从2.2.0-alpha01更新为2.2.0,这表明ViewModelProviders已经过时。那么,在kotlin中使用ViewModelProviders的替代方法是什么呢?如中所述,您现在只需直接使用。主要应该是将ViewModelProviders.of(的)更改为ViewModelProvider(),但您也可以看到中哪些新方法与哪些旧方法对应的完整列表 在Kotlin中,您还可以在活动中使用b

目前我将
androidx.lifecycle:lifecycle extensions
版本从
2.2.0-alpha01
更新为
2.2.0
,这表明ViewModelProviders已经过时。那么,在kotlin中使用ViewModelProviders的替代方法是什么呢?

如中所述,您现在只需直接使用。主要应该是将
ViewModelProviders.of(
的)更改为
ViewModelProvider(
),但您也可以看到中哪些新方法与哪些旧方法对应的完整列表

在Kotlin中,您还可以在
活动中使用
by viewModels()
属性委托来获取单个
ViewModel
。例如:

val model: MyViewModel by viewModels()

例如,如果您使用的是旧版本

MyViewModel myViewModel = new ViewModelProviders.of(this, new MyViewModelFactory(this.getApplication(), "Your string parameter")).get(MyViewModel.class);
例如,对于最新版本

MyViewModel myViewModel = new ViewModelProvider(this, viewModelFactory).get(MyViewModel.class);
或者,使用ViewModelStore

旧版本

现在选择

在爪哇

在科特林

Refs-

ViewModelProvider(this).get(ChatViewModel::class.java)
在java中“viewModel=newviewmodelprovider(this).get(BaseViewModel.class);”
MyViewModel myViewModel = new ViewModelProvider(getViewModelStore(), viewModelFactory).get(MyViewModel.class);
var viewModel = ViewModelProviders.of(this).get(BaseViewModel::class.java)
viewModel = ViewModelProvider(this).get(BaseViewModel.class);
var  viewModel = ViewModelProvider(this).get(BaseViewModel::class.java)