Android ViewModel的简单应用

Android ViewModel 是一种设计模式,用于在应用程序组件之间存储和管理UI相关的数据。下面是使用Android ViewModel的基本步骤:

添加 ViewModel 依赖:在项目的 build.gradle 文件中添加以下依赖:

implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.0"

创建 ViewModel 类:创建一个继承自 ViewModel 的类,并在类中定义需要存储和管理的数据。

import androidx.lifecycle.ViewModel

class MainViewModel : ViewModel() {
    // 在这里定义需要存储和管理的数据
}

在 Activity 或 Fragment 中使用 ViewModel:在需要使用 ViewModel 的 Activity 或 Fragment 中,通过 ViewModelProvider 获取 ViewModel 的实例。

class MainActivity : AppCompatActivity() {

    lateinit var viewModel: MainViewModel

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        viewModel = ViewModelProvider(this).get(MainViewModel::class.java)      
    }

}

使用 ViewModel:在获取了 ViewModel 的实例之后,即可使用 ViewModel 中定义的数据。

// 读取数据
val data = viewModel.myData

// 更新数据
viewModel.myData = newData

ViewModel 的生命周期与相关的 Activity 或 Fragment 绑定,当相关组件销毁时,ViewModel 的实例会被销毁。它可以帮助我们在配置变化(如屏幕旋转)时保持数据的一致性,同时还可以避免内存泄漏和过度的数据处理。

相关推荐

  1. Android ViewModel简单应用

    2023-12-21 18:26:04       45 阅读
  2. Linux DAC权限简单应用

    2023-12-21 18:26:04       51 阅读
  3. 树莓派简单应用场景

    2023-12-21 18:26:04       33 阅读
  4. 简单应用:括号匹配

    2023-12-21 18:26:04       29 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2023-12-21 18:26:04       75 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2023-12-21 18:26:04       80 阅读
  3. 在Django里面运行非项目文件

    2023-12-21 18:26:04       64 阅读
  4. Python语言-面向对象

    2023-12-21 18:26:04       75 阅读

热门阅读

  1. 力扣56. 合并区间

    2023-12-21 18:26:04       44 阅读
  2. liunx安装git

    2023-12-21 18:26:04       59 阅读
  3. JNI学习(一)

    2023-12-21 18:26:04       58 阅读
  4. 【SpringBoot】知识点总结

    2023-12-21 18:26:04       60 阅读
  5. css 2D转换

    2023-12-21 18:26:04       41 阅读
  6. 从入门到放弃之「ClickHouse」

    2023-12-21 18:26:04       64 阅读
  7. Ansible

    Ansible

    2023-12-21 18:26:04      34 阅读
  8. ansible剧本playbook

    2023-12-21 18:26:04       52 阅读
  9. 【力扣100】108.将有序数组转化为二叉搜索树

    2023-12-21 18:26:04       62 阅读