0

別のプログラマーによって書かれたプロジェクトがあります。そしてその中にはそのようなコードがあります

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 の経験がないため、これを理解できません。

4

0 に答える 0