kotlin -
问题描述
解决方案
您可以通过两种方式在 MutableLiveDataObject 上设置值(取决于您在做什么)。
可以通过以下方式从 UI 线程正常设置值:
myLiveData.value = myobject
如果您从后台线程设置它,就像您可能在具有挂起函数或异步任务等的协程中一样,请使用:
myLiveData.postValue(myObject)
从您的问题中不清楚 LiveData 是否意味着在您提到列表和单个值时保存一个列表。但是您的 LiveData 将一组值保存为一个集合,如列表、集合或地图。它可以被视为一个完整的对象,因此稍后添加一个值需要再次设置整个集合,例如:
myLiveData.value = mutableListOf<Url>()
//Response received and object created
myLiveData.value = myLiveData.value.apply {
add(myObject)
}
或者,如果该值是可变的,则更新现有值(首选,因为它更干净):
myLiveData.value.add(myObject)
这种方法的问题是您将地图公开为可变/可写对象。允许访问者更改您可能不想要的值。
推荐阅读
- wpf - 为什么绑定 DataTable 在 XAML 中不起作用
- postgresql - 我在 .netcore 和 postgres 的 docker-compose 中做错了什么?
- android - 什么时候需要观察者获取实时数据?
- c# - 尝试在实例化的预制件上应用 z 旋转未按预期工作
- visual-studio-2017 - 如何解决 Visual Studio 2017 社区版中的“'cl' 不被识别为内部或外部命令”问题?
- javascript - 无法在 React JS 表中呈现子对象
- javascript - Javascript:检查项目是否存在于对象内的数组中
- python - AttributeError:无法获取属性“DataFrameSelector”
- python - Python:如何写入 fd 3?
- quickfixn - 在 QuickFIXn NewOrderSingle() 中设置用户定义字段