別のプログラマーによって書かれたプロジェクトがあります。そしてその中にはそのようなコードがあります
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 が何を提供し、どのように使用するかが不明です。データを何らかのキーに関連付けて、このキーを使用して取得しているという印象を受けました =) しかし、これには多くの疑問が生じます。
PS プロジェクトの書き方がまずかったので、これはある種の松葉杖かもしれませんが、LiveData の経験がないため、これを理解できません。