gpt4 book ai didi

android - 获取 ViewModel ViewModelProvider.Factory 和应用上下文

转载 作者:行者123 更新时间:2023-11-29 18:30:45 27 4
gpt4 key购买 nike

我正在扩展 AndroidViewModel 以在我的 ViewModel 中获取应用程序上下文,但现在我还想将一些参数传递给我的 ViewModel。经过一些谷歌搜索后,我开始知道我可以使用 ViewModelProvider.Factory 来获取我的 MyViewModel 的参数化构造函数,但如何获取应用程序上下文。

提前致谢。

最佳答案

您需要 ViewModel.Factory 中的 Application 来实例化 AndroidViewModel

实现的方法

  • 如果您在 Activity/Fragment 中实例化 ViewModel,则执行 getApplicationContext() 并将其转换为 Application。如果在 fragment 中,您可以获得托管 Activity 并从中获取应用程序。
// Kotlin code
viewModel = ViewModelProviders.of(this,
ViewModel.Factory(activity?.application!!, param1, param2)) // from an fragment onViewCreated()
  • 如果您的应用程序有一个 Application 类,则公开一个获取应用程序实例的方法。
// JAVA code
public static Application getApp() {
return YourApplication.instance; // instance will be an static field in Application class
}

关于android - 获取 ViewModel ViewModelProvider.Factory 和应用上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56433098/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com