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

Android中创建ViewModel的几种方法

文章目录

  • 1. 使用 `ViewModelProvider`
    • 1.1 在 `Activity` 中创建 `ViewModel`
    • 1.2 在 `Fragment` 中创建 `ViewModel`
  • 2. 使用 `ViewModelFactory`
    • 2.1 创建 `ViewModel` 和 `ViewModelFactory`
    • 2.2 在 `Activity` 或 `Fragment` 中使用 `ViewModelFactory`
  • 3. 使用 `by viewModels()` 委托
    • 3.1 添加扩展库依赖
    • 3.2 在Fragment 中使用 `by viewModels()`
    • 3.3 在 Activity 中使用 `by viewModels()`
  • 4. 总结

在Android中,ViewModel 是一种用于管理与UI相关的数据的架构组件。它的生命周期与 ActivityFragment 的生命周期相独立,能够有效地处理配置更改(如旋转屏幕)而不会丢失数据。以下是创建 ViewModel 的几种常见方式。

1. 使用 ViewModelProvider

这是最常用的方式,适用于 ActivityFragment

1.1 在 Activity 中创建 ViewModel

定义一个自己的 ViewModel 类:MyViewModel

class MyViewModel: ViewModel() {
    }

在 Activity 中创建 MyViewModel 的对象,关键代码:ViewModelProvider(this).get(MyViewModel::class.java)

class MyActivity : AppCompatActivity() {
   
    private lateinit var viewModel: MyViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
   
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        viewModel = ViewModelProvider(this).get(MyViewModel::class.java)
    }
}

1.2 在 Fragment 中创建 ViewModel

在 Fragment 中创建 MyViewModel 的对象,也是使用 ViewModelProvider。 关键代码:ViewModelProvider(requireActivity()).get(MyViewModel::class.java)

class MyFragment : Fragment() {
   
    private <

http://www.kler.cn/a/467581.html

相关文章:

  • 练习(继承)
  • 小于n的最大数 - 贪心算法 - C++
  • 计算机的错误计算(二百零二)
  • 【开源社区openEuler实践】rust_shyper
  • 车载通信架构 --- 智能汽车通信前沿技术
  • AWS 申请证书、配置load balancer、配置域名
  • 体验谷歌最新Gemini 2.0 Flash原生多模态音视频对话桌面分享功能
  • 数据结构C语言描述7(图文结合)--哈希、哈希冲突、开放地址法、链地址法等实现
  • 阿里云效自动化部署 Docker镜像
  • 电子电气架构 --- 整车整车网络管理浅析
  • 时序数据库对比
  • Vue项目中生成node_modules文件夹的两种常用方法及npm优势
  • 曲速引擎前端代码生成器 6.6.0 介绍二
  • 《计算机网络A》单选题-复习题库解析-3
  • python——对三大语句的补充、对象的内存分配
  • 友元和运算符重载
  • [网络安全]shiro安全框架基本原理
  • RabbitMq的Java项目实践
  • 1、ELK的架构和安装
  • 黑马Java面试教程_P11_技术场景
  • NAT网络技术
  • 基于Node.js + Koa2 + MySQL + TypeScript的应用示例
  • 现代光学基础-3
  • 第十四届蓝桥杯Scratch省赛中级组—智能计价器
  • Linux下shell命令之netstat详解及示例
  • 第六十四章 假脱机设备 - 使用 %SPOOL 打印