簡體   English   中英

ViewModelProviders 在 2.2.0 中被棄用

[英]ViewModelProviders is deprecated in 2.2.0

目前我將androidx.lifecycle:lifecycle-extensions版本從2.2.0-alpha012.2.0 ,它顯示 ViewModelProviders 已棄用。 那么在 kotlin 中使用ViewModelProviders的替代方法是什么?

舊版本

var viewModel = ViewModelProviders.of(this).get(BaseViewModel::class.java)

現在替代

在 Java 中

viewModel = ViewModelProvider(this).get(BaseViewModel.class);

在科特林

var  viewModel = ViewModelProvider(this).get(BaseViewModel::class.java)

參考 - https://developer.android.com/reference/androidx/lifecycle/ViewModelProviders

例如,如果您使用的是舊版本。

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 鏈接

MyViewModel myViewModel = new ViewModelProvider(getViewModelStore(), viewModelFactory).get(MyViewModel.class);

正如文檔中所說,您現在可以直接使用ViewModelProvider構造函數 這應該主要是將ViewModelProviders.of(更改為ViewModelProvider( ,但您也可以在文檔中看到具體哪些新方法對應於哪些舊方法的完整列表。

在 Kotlin 中,您還可以在Activity / Fragment使用by viewModels()屬性委托來獲取單個ViewModel 例如:

val model: MyViewModel by viewModels()

暫無
暫無

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

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