viewmodel用法
时间: 2024-05-02 15:17:10 浏览: 92
ViewModel的具体用法
ViewModel 是 Android 架构组件之一,旨在帮助解决 Activity 和 Fragment 与数据持久性相关的问题。ViewModel 类的实例会存储和管理与视图相关的数据,这样即使是配置更改(如旋转屏幕)或者内存回收等情况,数据也不会丢失。ViewModel 通过使用“生命周期感知”来实现这一点,即 ViewModel 的生命周期与 Activity 或 Fragment 的生命周期相关联。
在使用 ViewModel 时,通常的做法是创建一个 ViewModel 子类,将需要管理的数据作为类的成员变量,并提供对应的 get/set 方法。Activity 或 Fragment 可以通过获取 ViewModel 实例并调用其方法来访问和修改数据。
以一个简单的计数器为例,以下是一个使用 ViewModel 的代码示例:
1. 创建 ViewModel 子类
```kotlin
class CounterViewModel : ViewModel() {
private var count = 0
fun getCount(): Int {
return count
}
fun incrementCount() {
count++
}
}
```
2. 在 Activity 或 Fragment 中获取 ViewModel 实例
```kotlin
val viewModel = ViewModelProviders.of(this).get(CounterViewModel::class.java)
```
3. 在 Activity 或 Fragment 中使用 ViewModel
```kotlin
// 获取计数器的值
val count = viewModel.getCount()
// 增加计数器的值
viewModel.incrementCount()
```
需要注意的是,ViewModel 只能存储与视图相关的数据,不能存储与 Android 系统相关的数据,如 Context、View 等。此外,ViewModel 的生命周期与 Activity 或 Fragment 的生命周期相关联,因此在使用 ViewModel 时也需要确保正确处理生命周期。
阅读全文