Polaris Nation
Polaris Nation

Reputation: 1235

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

Here is my data class

SaleData(dataclass)

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
}

But Log the saleType like Log.d("DataLog","" + saleData.value?.saleType), it returns null. I changed the saleType to Int,

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

It returns the data successfully. So I have a question. How save and inquire the liveata value of the object class?

Upvotes: 0

Views: 632

Answers (1)

Pentiux
Pentiux

Reputation: 215

_saleData.value?.saleType = 1

here you have to initialize livedata value with not null object soz if you have SaleData class:

_saleData.value = SaleData()

after it, value wont be null

Upvotes: 1

Related Questions