DAO
@Query("SELECT COUNT(category) FROM todolist_table")
fun getAllTaskCount() : LiveData<Int>
回购
suspend fun getAllTaskCount() : LiveData<Int> {
return todoDao.getAllTaskCount()
}
视图模型
fun getAllTaskCount(){
viewModelScope.launch(Dispatchers.IO) {
repository.getAllTaskCount()
}
}
视图
val viewModel = ToDoViewModel(application = LocalContext.current.applicationContext as Application)
val taskCount = viewModel.getAllTaskCounter()
我想从数据库中计数类别,但返回null
1条答案
按热度按时间fquxozlt1#
因为它是LiveData,所以你必须在View中观察它,这在Jetpack compose中有点不同(与Fragments相比)。
你可以做的是在viewModel中声明一个变量,它包含对数据库的引用,如下所示:
在视图中,您可以观察更改并对任务执行某些操作:
可能值得查看文档的这一部分,它更深入地介绍了状态并进行了观察:https://developer.android.com/jetpack/compose/state