问题描述
我能够使用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 (将#修改为@)