小编Des*_*yer的帖子

如何更改 ViewModel 内的 MutableLiveData 值

我需要更改 ViewModel 中 MutableLiveData 的值,但我无法做到这一点,因为该值等于 null,我认为需要建立一个观察者在其中更改它,但我不知道该怎么做,并且这是否是一个好主意。

录音机列表视图模型

class AudioRecordersListViewModel() : ViewModel() {
    var audioRecordsLiveData: MutableLiveData<MutableList<AudioRecordUI>> = MutableLiveData();
    private var audioRecordDao: AudioRecordDao? = null

    @Inject
    constructor(audioRecordDao: AudioRecordDao) : this() {
        this.audioRecordDao = audioRecordDao
        viewModelScope.launch {
        val liveDataItems = audioRecordDao
                .getAll().value!!.map { item -> AudioRecordUI(item) }
                .toMutableList()

            if (liveDataItems.size > 0) {
                liveDataItems[0].isActive = true
            }

            audioRecordsLiveData.postValue(liveDataItems)
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

录音道

@Dao
interface AudioRecordDao {
    @Query("SELECT * FROM AudioRecordEmpty")
    fun getAll(): LiveData<MutableList<AudioRecordEmpty>>
}
Run Code Online (Sandbox Code Playgroud)

android viewmodel kotlin android-livedata

1
推荐指数
1
解决办法
3109
查看次数

标签 统计

android ×1

android-livedata ×1

kotlin ×1

viewmodel ×1