gpt4 book ai didi

android - 可以将一个 ViewModel 用于多个 Activity 吗?

转载 作者:行者123 更新时间:2023-11-29 02:21:10 30 4
gpt4 key购买 nike

我正在构建一个工作管理应用程序并尝试实现 Android 架构组件。我有一个 Activity 用于查看有关任务的详细信息,然后有多个 Activity 来编辑该任务。由于所有这些 Activity 中的所有数据都是相同的,并且这些 Activity 将经常使用相同的数据一个接一个地打开,我可以为所有这些 Activity 共享一个 ViewModel 吗,还是应该为所有 Activity 创建单独的 ViewModel ?谢谢! :)

最佳答案

您可以为 fragment 使用 Activity 的共享 View 模型。例如,您有 ItemActivity,它托管用于项目预览的 ItemFragment 和用于编辑的 ItemEditFragment。您可以在 fragment 的 onCreate() 回调中获取 Activity 级别 View 模型:

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
val vm = activity?.run {
ViewModelProviders.of(this).get(ItemViewModel::class.java)
} ?: throw Exception("Invalid Activity")
}

此外,这种方法可以帮助您implement master-detail model适用于宽屏幕。

您应该注意,不同类型 View (例如预览、编辑)的单一 View 模型可能比每个 View 的独立 View 模型更难维护。

关于android - 可以将一个 ViewModel 用于多个 Activity 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55546560/

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