【发布时间】:2022-01-15 23:20:24
【问题描述】:
我有一个 livedata int 值,它的值最初是 3。 在 Fragment Quiz 中,它的值减小,变为 0。但是在 Fragment End 中,它的值仍然是 3,为什么?
视图模型
class QuizViewModel : ViewModel() {
private val lives = MutableLiveData<Int>()
var live = 3
init {
lives.value = live
}
fun onWrongAnswer() {
live--
}
fun onPlayAgain() {
live = 3
}
}
测验片段
每答错一次,live减1,如果为0或答题完毕,则到达EndFragment。
结束片段
private fun checkResult() {
if (viewModel.live == 0) {
binding.imageViewResult.setImageResource(R.drawable.sad)
binding.textViewResult.setText(R.string.you_lose_want_to_try_again)
} else {
binding.imageViewResult.setImageResource(R.drawable.won)
binding.textViewResult.setText(R.string.you_win_congratulations)
}
}
这部分不能正常工作,因为它仍然是Live 3。但是它的值减少了,变成了0。为什么又是3?
【问题讨论】:
-
我建议您使用更具表现力的标题以避免被否决。
-
你对标题有什么建议吗?
标签: android kotlin mvvm viewmodel android-livedata