首页 > 解决方案 > Kotlin 中带有 LiveData 的 ArrayOfNulls

问题描述

我有一个自定义类卡。我用它来创建一个数组,arrayOfNulls()如下所示:

var cards: Array<Array<Card?>?> = Array(n) { arrayOfNulls<Card?>(n) }

其中 n 是一个Int(Kotlin)

现在我需要在我的ViewModel类中移动这个变量并将它包裹在一个LiveData类中(最好是 MutableLiveData)。

我应该如何在我的AndroidViewModel班级中声明和初始化卡片变量?

标签: androidkotlinandroid-architecture-componentsandroid-viewmodelandroid-livedata

解决方案


创建一个 MutableLiveData 变量,用于包装您的卡片并将其作为类变量添加到您的 ViewModel 中:

val mutableLiveData = MutableLiveData<Array<Array<Card?>?>>()

您现在可以从 Fragment/Activity/... 访问和订阅此变量

要更改 mutableLiveData-Variable 的值,只需更改值:

mutableLiveData .value = cards

并且此 LiveData-Variable 的所有订阅者都将获得新值。


推荐阅读