gpt4 book ai didi

android - 在 RecyclerView 中按项目从网络加载数据

转载 作者:行者123 更新时间:2023-11-29 01:07:34 25 4
gpt4 key购买 nike

从服务器(API REST),我可以获得一个项目(产品)列表,其中包含每个项目的一些信息。我将该列表映射到带有适配器的 RecyclerView 中。在收到该列表之前,我会显示加载 View 。

但是,我必须在每一行中显示每个项目的更多信息,但我只能通过另一个 HTTP 请求(每个项目)获取该信息,发送该产品的 ID。因此,我想用该信息异步填充每一行的 UI(当显示该行时)。

实现该目标的更好方法是什么?我认为这与异步图像加载有同样的问题,所以我应该做一些像 Picasso 或 Universal Image Loading 这样的库。不是吗?

你知道任何图书馆可以帮助我吗?

提前致谢!

最佳答案

您可以使用 RxJava 库实现此目的。例如,在您的 onBindViewHolder 方法中,您可能会执行如下操作:

Observable.fromCallable {
loadDataAsync(position, <other arguments you need>)
}.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe { loadedData ->
holder.setAdditionalData(loadedData)
}

当然,您必须跟踪每个订阅并在项目被回收后取消订阅,以防止内存泄漏。

无论如何,您应该修改您的 API 设计,让服务器在一个请求/响应周期内发送所有数据,而不是为每个项目发出大量小的 HTTP 请求。在这种情况下,您的问题就消失了。

关于android - 在 RecyclerView 中按项目从网络加载数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45792993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com