如何在 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()
之后,值不会为空
这是我的数据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()
之后,值不会为空