文章目录
前言
在上一篇Room我们了解如何简单的使用Room数据库https://blog.youkuaiyun.com/csdn546229768/article/details/116569028点我跳转
那么这篇将使用Viewmode管理数据Activity层只负责处理view
一、ViewModel是什么?
- ViewModel是一个类,负责准备和管理Activity或的数据Fragment。它还处理活动/片段与应用程序其余部分的通信(例如,调用业务逻辑类)。
- ViewModel通常通过LiveData或Android数据绑定公开此信息。
- ViewModel的唯一责任是管理UI的数据。它永远不应访问您的视图层次结构,也不应保留对活动或片段的引用。
二、使用步骤
(这里讲Room和ViewMode的结合使用所以不讲ViewMode的使用了)
1. 引入库
在上篇的代码基础上进行添加
//viewModeScope
implementation "androidx.lifecycle:lifecycle-viewmodel-ktx:2.3.1"
2. 新建ViewMode类
-
首先集成AndroidViewModel–为什么是AndroidViewModel因为比ViewModel好用
-
将room数据库配置信息声明成域
private val wordDatabase by lazy {
Room.databaseBuilder(
application,
WordDataBases::class.java,
"word_database.db"
)
.build()
} //配置Dabase信息
private val wordDao by lazy {
wordDatabase.getWordDao() } //获取Dao层控制对象
3. 将room数据库配置信息声明成域
fun getAllWords() = wordDao.getAllWords() //获取全部数据
fun insertView(){
viewModelScope.launch {
//这里为什么没有换线程 ----因为我在insertWords这个方法声明了suspend函数
wordDao.insertWords(Emp(null, "Hello", "你好"))
}
}
fun clearView() {
viewModelScope.launch {
withContext(Dispatchers.Default) {
wordDao.clearAll()
}
}
}
fun deleteView() {
viewModelScope.launch {
withContext(Dispatchers.Default) {
wordDao.deleteWords(Emp(1,

本文介绍如何结合使用ViewModel和Room来管理Android应用中的数据。文章详细解释了ViewModel的作用及其实现步骤,并演示了如何在ViewModel中操作Room数据库,包括查询、插入、更新和删除数据等常见操作。
最低0.47元/天 解锁文章
1022

被折叠的 条评论
为什么被折叠?



