转换LiveData

问题描述

我在做什么错?我没有得到转化。我正在尝试将时间戳转换为ViewModel中的特定格式。我仍然在输出上得到一个时间戳。

private var liveData: LiveData<List<Rule>>

init {
        liveData = repository.getData(collectionName,orderByField,orderByDirection)
    }

fun getData(): LiveData<List<Rule>> {
        Transformations.map(liveData) {list ->
            list.map {item ->
                item.createTimestamp = utilities.covertTimestampToDate(item.createTimestamp.toLong())
                item.updateTimestamp = utilities.covertTimestampToDate(item.updateTimestamp.toLong())
            }
        }
        return liveData
    }

尝试如下:

fun getData(): LiveData<List<Rule>>
            = Transformations.map(liveData) {list ->
                var newList = emptyList<Rule>()
                list.map {item ->
                    item.createTimestamp = utilities.covertTimestampToDate(item.createTimestamp.toLong())
                    item.updateTimestamp = utilities.covertTimestampToDate(item.updateTimestamp.toLong())
                }
                newList = list
                return@map newList
            }

尝试如下:

fun getData(): LiveData<List<Rule>>
            = Transformations.map(liveData) {list ->
                val newList = ArrayList<Rule>()
                list.map {item ->
                    item.createTimestamp = utilities.covertTimestampToDate(item.createTimestamp.toLong())
                    item.updateTimestamp = utilities.covertTimestampToDate(item.updateTimestamp.toLong())
                    newList.add(item)
                }
                return@map newList
            }

解决方法

将livedata更改为mutablelivedata并设置值

private var liveData: MutableLiveData<List<Rule>>

init {

liveData.value  = repository.getData(collectionName,orderByField,orderByDirection)
  
}

返回转换后的实时数据

fun getData(): LiveData<List<Rule>> {
          return  Transformations.map(liveData) {list ->
                list.map {item ->
                    item.createTimestamp = utilities.covertTimestampToDate(item.createTimestamp.toLong())
                    item.updateTimestamp = utilities.covertTimestampToDate(item.updateTimestamp.toLong())
                }
            }
            
        }

相关问答

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