如何解决如何使用Kotlin访问LiveData <List <MVoice >>的每个元素?
代码A使用for (aMovice in listVoiceBySort.value!!)
访问LiveData<List<MVoice>>
的每个元素。
但是我认为这不是一个好方法,因为它使用listVoiceBySort.value!!
,很丑陋。
是否有一种好的方法来访问LiveData<List<MVoice>>
的每个元素?
代码A
val listVoiceBySort: LiveData<List<MVoice>> =_listVoiceBySort
fun selectAllIDs(){
for (aMovice in listVoiceBySort.value!!){
selectedIDs.add(aMovice.id)
}
}
解决方法
最好使用forEach
即具有相同功能的内联函数。
它使您可以使用安全调用(?.
)而不是非null断言(!!
):
fun selectAllIDs() {
listVoiceBySort.value?.forEach {
selectedIDs.add(it.id)
}
}
另一种方法是将MVoice
元素映射到其ID,然后将它们全部添加到selectedIDs
:
fun selectAllIDs() {
listVoiceBySort.value?.map { it.id }?.let {
selectedIDs.addAll(it)
}
}
,
通常,通过获取非空值的观察者访问livedata中的数据
conversation ID
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。