如何解决从ViewModel转换函数中获取模型对象的LiveData属性
我能够使用Transformation.map通过ViewModel从存储库中获取LiveData。但是,我现在需要从我的tranforms getRow()函数中获取一个LiveData列表,该列表是下面资产对象上的一个属性。
此viewModel负责为片段表创建行-这些行可以由资产或配对组成,并将显示一个与此相关的不同viewHolder UI。
data class AssetPairingTableRow(var asset: Asset?,var pairing: Pairing?)
class SelectAssetViewModel : ViewModel() {
private val assetRepo = AssetRepository.get()
private val floor_id = MutableLiveData<String>()
private val assets: LiveData<List<Asset>> = Transformations.switchMap(floor_id) {
floor_id -> assetRepo.getAssets(floor_id)
}
val rows: LiveData<List<AssetPairingTableRow>> = Transformations.map(assets) {
assets -> getRows(assets)
}
private fun getRows(assets: List<Asset>): List<AssetPairingTableRow> {
val rows = mutableListOf<AssetPairingTableRow>()
for (asset in assets) {
rows.add(AssetPairingTableRow(asset,null))
// I want to get asset.pairingsLiveData list
}
return rows
}
fun setFloor_id(floor_id: String) {
this.floor_id.value = floor_id
}
}
这是Assete对象:
@Entity
data class Asset(@PrimaryKey val client_asset_id: String,var asset_type: String,var floor_id: String,var created_at: String) {
@Ignore
private val pairingRepo = PairingRepository.get()
@Ignore
var pairingsLiveData = pairingRepo.getPairings(client_asset_id)
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。