如何在 ViewModel 中为数据 class 参数 LiveData 设置初始化和设置值

How to set initialize and set value to data class parameter LiveData in ViewModel

这是我的数据class

SaleData(数据class)

data class SaleData(
    var saleType: Int = 1,
    var saleDetail: Int,
    var salePrice: Int,
    var saleRate: Int,
    var printAmount: Int
)

ViewModel

private val _saleData: MutableLiveData<SaleData> = MutableLiveData()
val saleData: LiveData<SaleData>
    get() = _saleData
init {
    
    _saleData.value?.saleType = 1
    
    changeSaleType()
}

fun changeSaleType() {
    _saleData.value?.saleType = 2
}

但是像 Log.d("DataLog","" + saleData.value?.saleType) 这样记录 saleType,它 returns 为空。 我将 saleType 更改为 Int,

private val _saleType: MutableLiveData<Int> = MutableLiveData()
val saleType: LiveData<Int>
    get() = _saleType

returns数据成功。 所以我有一个问题。 如何保存和查询对象的liveata值class?

_saleData.value?.saleType = 1

这里你必须用非空对象初始化 livedata 值 所以如果你有 SaleData class:

_saleData.value = SaleData()

之后,值不会为空