【发布时间】:2022-01-04 08:11:30
【问题描述】:
我无法为声明为MutableLiveData 的LiveData 变量设置值。我试图设置的值是从存储库返回的LiveData。
请在下面找到课程。
Viewmodel.class
// Variable to hold list of tasks Livedata
private val _tasks=MutableLiveData<List<TaskEntity>>()
val tasks:LiveData<List<TaskEntity>>
get() = _tasks
init{
getTasksFromDb()
}
private fun getTasksFromDb(){
viewModelScope.launch {
try {
_tasks.value=taskRepository.getAllTasks() // Showing error here
}catch(exception:Exception){
Log.d(TAG,"Error "+exception.message)
}
}
}
存储库
class TaskRepository (val taskDb: TaskDatabase){
suspend fun insert(taskEntity: TaskEntity)=
taskDb.taskDao.insert(taskEntity)
fun update(taskEntity: TaskEntity)=
taskDb.taskDao.update(taskEntity)
fun delete(taskEntity: TaskEntity)=
taskDb.taskDao.delete(taskEntity)
fun getAllTasks():LiveData<List<TaskEntity>> =
taskDb.taskDao.getAllTasks()
}
道
@Dao
interface TaskDao {
@Insert
fun insert(taskEntity: TaskEntity)
@Update
fun update(taskEntity: TaskEntity)
@Delete
fun delete(taskEntity: TaskEntity)
@Query("SELECT * FROM tasks")
fun getAllTasks():LiveData<List<TaskEntity>>
}
这里声明的变量以及我试图分配的值也是LiveData.Still 它给出了错误
Type mismatch:
Required : List<Entity>, Found: LiveData<List<Entity>>
有人可以帮我找出这里的问题吗?
【问题讨论】:
标签: android kotlin android-room android-livedata