简体   繁体   English

不推荐使用“ViewModelProviders”。 Java解决方案?

[英]'ViewModelProviders' is deprecated. Java solution?

'ViewModelProviders' is deprecated from androidx.lifecycle:lifecycle-*:2.2.0-alpha03 https://developer.android.com/jetpack/androidx/releases/lifecycle#2.2.0-alpha03 Here is solution for Kotlin 'ViewModelProviders' is deprecated. 'ViewModelProviders' 已从 androidx.lifecycle:lifecycle-*:2.2.0-alpha03 https://developer.android.com/jetpack/androidx/releases/lifecycle#2.2.0-alpha03 中弃用 这里是 Kotlin 'ViewModelProviders' 的解决方案已弃用。 After upgrading lifecycle-extensions:2.1.0 to 2.2.0-alpha05 But what is Java version of that? 将 Lifecycle-extensions:2.1.0 升级到 2.2.0-alpha05 之后,Java 版本是什么? ViewModelProvider(this).get(MyViewModel.class) not work for Java. ViewModelProvider(this).get(MyViewModel.class) 不适用于 Java。

ViewModelProviders.of(this).get(MyViewModel.class); ViewModelProviders.of(this).get(MyViewModel.class); - deprecated - 已弃用

new ViewModelProvider(this).get(MyViewModel.class);新的 ViewModelProvider(this).get(MyViewModel.class); - correct - 正确的

Thanks @EpicPandaForce !谢谢@EpicPandaForce!

Generic Example (up to android.arch.lifecycle:extensions:1.1.0).通用示例(直到 android.arch.lifecycle:extensions:1.1.0)。 it is deprecated from 1.1.1,它从 1.1.1 开始被弃用,

MyViewModel myViewModel = new ViewModelProviders.of(this, new MyViewModelFactory(this.getApplication(), "Your string parameter")).get(MyViewModel.class);

Generic Example (for android.arch.lifecycle:extensions:1.1.1)通用示例(适用于 android.arch.lifecycle:extensions:1.1.1)

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

OR, Use ViewModelStore link或者,使用 ViewModelStore 链接

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

您还可以为您的 ViewModel 创建一个 CREATOR 对象,并从您的活动中调用这个对象,这个对象将作为一个工厂对象,您可以在调用任何 ViewModelFactory 时调用它。

ViewModelProviders.of(this, ViewModelFactoryObject).get(ViewModel::class.java).apply{}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 注册商已弃用。 在 Java 中弃用 - Registrar is deprecated. Deprecated in Java 如何在 JAVA 中弃用 ViewModelProviders 后实现 ViewModelProvider - How to implement ViewModelProvider after ViewModelProviders deprecated in JAVA 'ViewModelProviders' 已弃用。 升级生命周期扩展后:2.1.0 到 2.2.0-alpha05 - 'ViewModelProviders' is deprecated. After upgrading lifecycle-extensions:2.1.0 to 2.2.0-alpha05 默认显示的吸气剂:显示。 已弃用。 在 Java 中已弃用 - Getter for defaultDisplay: Display!' is deprecated. Deprecated in Java 如何处理`已弃用。 在 Java 中弃用? - How to handle `is deprecated. Deprecated in Java`? 'setHasOptionsMenu(Boolean): Unit' 已弃用。 在 Java 中已弃用 - 'setHasOptionsMenu(Boolean): Unit' is deprecated. Deprecated in Java ViewModelProviders 在 1.1.0 中已弃用 - ViewModelProviders is deprecated in 1.1.0 已弃用的 ViewModelProviders 的替代方案? - Alternative for deprecated ViewModelProviders? '签名:数组&lt;(out)签名。&gt;!' 已弃用。 在 Java 中已弃用 - 'signatures: Array<(out) Signature!>!' is deprecated. Deprecated in Java 'onPrepareOptionsPanel(View?, Menu): Boolean' 已弃用。 在 Java 中已弃用 - 'onPrepareOptionsPanel(View?, Menu): Boolean' is deprecated. Deprecated in Java
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM