我需要更改 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)