2020年如何在活动中获取ViewModel实例?

格克

我是mvvm模式的新手。我为主要活动创建了一个ViewModel。现在,我想在主活动中获取ViewModel的实例。

有关Stackoverflow的大多数教程和答案都建议使用ViewModelProviders.of(...,但这已被淘汰。

因此,根据关于stackoverflow的这个问题:在onCreate的1.1.0主要活动中不赞成使用ViewModelProviders,我执行以下操作(并且我发誓我已经运行了它):mainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);

但是,我收到一个错误消息,告诉我没有找到合适的构造函数。

error: no suitable constructor found for ViewModelProvider(MainActivity)

另外,为了明确说明,MainActivity应该是ViewModelStoreOwner,我创建了一个变量ViewModelStoreOwner vmso = this;,然后将该变量放入构造函数中,如下所示:mainActivityViewModel = new ViewModelProvider(vmso).get(MainActivityViewModel.class);

皮奥特·阿基耶维奇

您应该将gradle文件更新为:

实现'androidx.lifecycle:lifecycle-extensions:2.2.0'

由于此更改,您可以将Activity传递给您提到的构造函数:

mainActivityViewModel = new ViewModelProvider(this).get(MainActivityViewModel.class);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Python中获取实例变量?

如何在Android MVVM ViewModel中获取上下文

如何在AndroidX中实例化ViewModel?

在活动中获取片段实例

如何在数据模板中实例化ViewModel

如何在Terraform中获取EMR主实例的实例ID?

如何在Dynamics CRM 2011中获取每个帐户的活动?

如何在ViewModel中启动活动?

如何在回调中获取实例

如何在taghelper处理方法中获取整个viewmodel?

如何在Kotlin活动中获取ListPreference值

如何在ReactJS中从数据库转换2020年12月14日的日期对象

如何在实例中获取AWS OpsWorks实例ID?

如何在ViewModel中获取Button的内容?

带标签的Android活动:如何在活动标签后面获取Fragment实例

如何在SSMS插件中获取活动窗口的全文?

如何在Python中获取当前活动窗口的名称?

如何在Drools中获取活动规则的数量?

如何在Eclipse中的活动中获取行号

如何在Xamarin中获取ActivityManager的实例?

如何在foreach数据绑定中获取对ViewModel的引用?

如何在活动的onResume()部分中访问服务对象的实例?

如何在Xamarin中获取GoogleApiClient实例?

如何在 Django ModelForm 中获取实例

如何在 Forge 中获取 MinecraftServer 的实例?

如何在活动之间共享 viewModel?

如何在 2020 年将服务对象传递给活动

如何在 Xamarin 的 ViewModel Renderer 中获取 TableSection 的 TextColor 值

如何在托管实例组中获取活动实例模板名称