我目前正在申请
Room
+
ViewModel
+
LiveData
我的计划。
在我的应用程序中,有“明显”的观察数据是需要的,但不是全部。
下面的代码是示例代码
category
数据。在我的情况下,类别数据不会更改,并且始终保持相同的值状态(13个类别和内容不会更改)。类别是通过
CategoryItemDao
班级。
类别数据需要用LiveData包装吗?
或者是否有足够的理由使用LiveData
observerable
特色?
我已经读了几遍LiveData指南,但我不理解确切的概念。
分类方法
@Dao
interface CategoryItemDao {
@Query("SELECT * FROM CategoryItem")
fun getAllCategoryItems(): LiveData<MutableList<CategoryItem>>
}
类别报告
class CategoryRepository(application: Application) {
private val categoryItemDao: CategoryItemDao
private val allCategories: LiveData<MutableList<CategoryItem>>
init {
val db = AppDatabase.getDatabase(application)
categoryItemDao = db.categoryItemDao()
allCategories = categoryItemDao.getAllCategoryItems()
}
fun getAllCategories() = allCategories
}
类别视图模型
class CategoryViewModel(application: Application) : AndroidViewModel(application) {
private val repository = CategoryRepository(application)
private val allCategories: LiveData<MutableList<CategoryItem>>
init {
allCategories = repository.getAllCategories()
}
fun getAllCategories() = allCategories
}