android - 如何使用 RxAndroid/Retrofit 将项目添加到一次性 Observable 列表
问题描述
我正在调用 API 并返回自定义对象列表 ( Observable<ArrayList<Pin>>
)。在将列表发送回订阅者之前,我想添加一个我在本地创建的对象,并且与 API 调用分开。这是我的代码:
val requestInterface = Retrofit.Builder()
.baseUrl(context.resources.getString(R.string.ulr_pins))
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build().create(PinsService::class.java)
disposable.add(requestInterface.getPins()
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
//How do I add a custom Pin object to the list retrieved in requestInterface.getPins before I send it to the callback?
.subscribe(callback))
解决方案
使用map
操作,您可以通过以下方式将数据转换为任何内容map
:
disposable.add(requestInterface.getPins()
.map{ it ->
it.add(customPinObject)
it
}
.observeOn(AndroidSchedulers.mainThread())
.subscribeOn(Schedulers.io())
.subscribe(callback))
推荐阅读
- reactjs - 在 MS Edge 中反应 DatePicker 问题
- vba - 使用 VBA 打开 Windows 命令脚本
- c - c - 将指向 const int 的指针转换为仅指向 int 的指针(并对其进行修改)
- node.js - 我收到此错误,即警告 EAI_AGAIN:对 https://registry.npmjs.org/@babel%2fcli 的请求失败,原因:getaddrinfo EAI_AGAIN registry.npmjs.org
- repository - Ontotext GraphDB Repository 不能用于查询
- flutter - 颤振:在调试模式下构建时运行 pod install 需要很长时间
- java - 处理语言中的翻转
- python - 如何在 NLTK Matplotlib 函数中设置多行的颜色?
- reactjs - Recharts 不适用于带有 typescript 的 React
- scala - Scala如何在endsWith上使用正则表达式?