从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 (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...