当前位置: 首页 > news >正文

在 Android MVVM 架构中,获取 ViewModel 的几种方式

下面是几种主要获取方式的进一步说明:

​​使用 ViewModelProvider 直接获取​​:
这是最基础的方式。ViewModelProvider 会与你传入的 ViewModelStoreOwner(通常是 Activity 或 Fragment)关联,确保在配置更改(如屏幕旋转)时返回相同的 ViewModel 实例。

// 在 Activity 或 Fragment 中
val viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
2.
​​使用 KTX 扩展属性(推荐用于简单场景)​​:
这是目前​​最简洁和推荐​​的写法,它在背后仍然使用 ViewModelProvider,但通过属性委托的形式简化了代码。

// 在 Fragment 中获取仅限于该 Fragment 的 ViewModel
private val viewModel: MyViewModel by viewModels()

// 在 Fragment 中获取与宿主 Activity 共享的 ViewModel
private val sharedViewModel: SharedViewModel by activityViewModels()
使用此方式前,需在 build.gradle 中添加相应的 KTX 扩展库依赖,例如:

implementation “androidx.fragment:fragment-ktx:1.6.2”
implementation “androidx.activity:activ

http://www.xdnf.cn/news/1443115.html

相关文章:

  • 微服务的编程测评系统20-虚拟机-nginx-部署
  • 基于Java的瑜伽馆管理系统的设计与实现(代码+数据库+LW)
  • 【LeetCode】21、合并两个有序链表
  • 【设计模式】 装饰模式
  • 【机器学习深度学习】RAG边界处理策略
  • Django REST Framework Serializer 进阶教程
  • word删除指定页面
  • Ubuntu22.04中使用cmake安装abseil-cpp库
  • 【数据分享】283个地级市产业结构合理化水平和产业结构高级化指数(2006-2019)
  • Upload-Labs靶场全20关通关攻略(含原理+实操+环境配置)
  • 利用 Python 绘制环形热力图
  • SuperMap GIS基础产品FAQ集锦(20250819)
  • HTML应用指南:利用POST请求获取全国九号电动车体验店服务店位置信息
  • MyBatis 常见错误与解决方案:从坑中爬出的实战指南
  • 时序数据库选型指南:Apache IoTDB快速部署与实战应用
  • powershell实现,user权限下给软件提取。
  • 数学家破解世界难题——拒绝领奖拒绝百万奖金
  • AV-NeRF、AV-GS、AV-Surf论文解读
  • 基于数据挖掘的当代不孕症医案证治规律研究
  • C# Activator.GetObject 原理与示例:理解.NET Remoting远程调用
  • AI 时代零售数据底座怎么建?首份《零售一体化云数据库白皮书》发布
  • 强化微调:以Swift框架进行GRPO多模态模型强化微调为例
  • 【明道云】[工作表控件5] 手机控件的格式化处理
  • 在麒麟 ARM (aarch64)安装OpenJDK11和elasticsearchkibana
  • 云手机中的三大核心技术主要是指什么?
  • Docker部署Lunalytics开源监控工具
  • 开源检索增强生成(UltraRAG)框架
  • Unity2018版本安卓打包环境配置问题
  • 搞定鸿蒙新手 3 大痛点:页面跳转实现、应用标识修改与 Hyper-V 启动故障排查
  • Elasticsearch(text和keyword)区别分析