我有一个应用程序,其中有一个API调用,其中包含一些数据(存储在HashMap<String, Double>
中),我希望将这些数据存储在List
中,然后将该列表的值推送到数据库.以下是来self 的ViewModel
的一些记录的回复:
Success(data={A=1.1, B=2.2 ... })
如您所见,响应包装在泛型类中.我不知道如何从该响应中检索密钥.我觉得我什么都试过了...
Generic class个
sealed class RetrofitResult{
data class Success<out T>(val myData: T) : RetrofitResult()
data class Error(val myError: Throwable) : RetrofitResult()
}
Repository个
suspend fun getData(): RetrofitResult{
return try {
val response = myApi.makeCall()
RetrofitResult.Success(myData= response.body()?.myHashMap)
} catch (exception: IOException) {
RetrofitResult.Error(error = exception.cause!!)
}
}
ViewModel个
private val _dataStatus = MutableLiveData<RetrofitResult>()
val latestRates: LiveData<RetrofitResult> get() = _dataStatus
fun myData() {
viewModelScope.launch {
try {
val apiResponse = myRepository.getData()
_dataStatus .value = apiResponse
} catch (exception: IOException) {
//TODO
}
}
}
现在,我想从响应中获取密钥,并将其插入到List
中,这样我就会得到如下内容:
val dummyList: List<String> = listof("A", "B" ... )