我正在使用LiveData技术在我的应用程序中,我有一个继承自ViewModel
的视图模型。
在我的视图模型中,我有一个列表:
var songs: MutableLiveData<List<Song>> = MutableLiveData<List<Song>>()
在我的视图模型中的一个函数中,我做了以下操作:
songs.value?.find { it.id == song.id }.also {
when (song.isFavorite) {
true -> song.isFavorite = false
false -> song.isFavorite = true
}
}
我将更改 songs
中一个项目中的布尔值,并且在我的片段中,我会像下面这样观察这个列表:
viewModel.songs.observe(this , Observer {
Log.d(TAG , "songs changed")
})
但是在这个更改之后,歌曲将不会通知。
为什么会发生这样的情况?
感谢你的回答。