首先,我可能实际上并没有理解什么是可变的实时数据是正确的。
我使用实时数据从房间获取数据,然后将其显示给 UI,这是一个带有答案的问题,所以在问题结束时,我想用正确的答案、花费的时间等更新数据库。
我无法弄清楚如何使用可变实时数据,因为它几乎没有有用的信息,或者我非常愚蠢!
那么首先,我真的可以用可变的实时数据更新数据库吗?
如果是这样怎么办?(我不喜欢问这个,但我真的很难过)
道
@Query("SELECT * FROM question_table WHERE :id = uoe_id")
LiveData<Question> getQuestionLiveData(int id);
回购
public LiveData<Question> getQuestionLiveData(int id) {
return questionDao.getQuestionLiveData(id);
}
视图模型
public LiveData<Question> getQuestionLiveData(int id) {
return questionRepository.getQuestionLiveData(id);
}
然后在 View 中观察它
viewModel.getQuestionLiveData(packageId).observe(getViewLifecycleOwner(), new Observer<com.questionTest.practice.Model.Question>() {
@Override
public void onChanged(com.questionTest.practice.Model.QuestionQuestion question) {
Do stuff here////
}
}
});
下一部分是我不确定的地方。我在视图模型中添加了这个
MutableLiveData mutableLiveData = new MutableLiveData();
然后尝试将 this 分配给问题
mutableLiveData = (MutableLivedata) getQuestionLiveData(id);
所以我可以使用更新值,但这会引发 Casting 错误。
我要么遗漏了一些东西,要么我不能这样做,所以欢迎任何帮助谢谢