【问题标题】:ArrayOfNulls with LiveData in KotlinKotlin 中带有 LiveData 的 ArrayOfNulls
【发布时间】:2019-01-14 20:10:12
【问题描述】:

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

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

其中 n 是 Int(Kotlin)

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

我应该如何在AndroidViewModel 类中声明和初始化cards 变量?

【问题讨论】:

    标签: android kotlin android-architecture-components android-viewmodel android-livedata


    【解决方案1】:

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

    val mutableLiveData = MutableLiveData&lt;Array&lt;Array&lt;Card?&gt;?&gt;&gt;()

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

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

    mutableLiveData .value = cards

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

    【讨论】:

    • 谢谢@Oliver。我还想用 null 初始化每个 Card 项目,这就是我使用 arrayOfNulls() 方法的原因。你知道如何快速做到这一点吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-03-12
    • 1970-01-01
    • 2019-07-17
    • 2020-03-05
    • 2022-01-10
    • 2021-01-20
    • 1970-01-01
    相关资源
    最近更新 更多