有另一个程序员编写的项目。里面有这样的代码
class CardsViewModel : ViewModel() {
val selected = MutableLiveData<PaymentCard>()
companion object {
@JvmStatic
var keyId = 0
}
}
每次将一些数据添加到ViewModel时,此keyId都会递增:
val cardsViewModel = ViewModelProviders.of(requireActivity())
.get(CardsViewModel.keyId.toString(), CardsViewModel::class.java)
CardsViewModel.keyId++
cardsViewModel.selected.value = PaymentCard.EMPTY
然后以这种方式获取它:
val cardsViewModel = ViewModelProviders.of(requireActivity()).get(CardsViewModel.keyId.toString(), CardsViewModel::class.java)
bindingId = cardsViewModel.selected.value?.bindingId ?: ""
我最近才开始学习LiveData,但我不清楚此ID会提供什么以及如何使用它?我的印象是,我将数据绑定到某个键上,然后使用此键==进行检索。但这会引起很多问题。
P.S。该项目编写得很差,所以也许这有点of脚,但是由于缺乏LiveData的经验,我无法理解