[英]Loading each item in recycler view from different api calls
我有一个发帖请求,其中提供了ID列表。 我必须对每个ID ping多个请求,以获取商品数据(该特定ID的图像,文本等)并填充我的回收站视图。 做这个的最好方式是什么?
迭代id并基于id在循环中发出请求,您将获得响应并添加到数组列表,然后传递给适配器。
一旦获得ID列表,就可以进行类似的API调用
for(int id : idList){
getDetailsFromId(id);
}
并从每个ID获得响应后,将其添加到您的常用列表中。 假设您正在使用改造,这里是示例。
public void getDetailsFromId(int id){
TaskService taskService = ServiceGenerator.createService(TaskService.class);
Call<List<TaskDetails>> call = taskService.getTasks(id);
call.enqueue(new Callback<List<TaskDetails>>() {
@Override
public void onResponse(Call<List<TaskDetails>> call, Response<List<TaskDetails>> response) {
if (response.isSuccessful()) {
// tasks available add it and notify adapter
taskDetailsList.addAll(response.body());
taskDetailsAdapter.notifyDataSetChanged();
} else {
// error response, no access to resource?
}
}
@Override
public void onFailure(Call<List<TaskDetails>> call, Throwable t) {
// something went completely south (like no internet connection)
Log.d("Error", t.getMessage());
}
}
}
使用Picasso或其他等效项在onBindViewHolder
获取图像和常规网络库(例如, onBindViewHolder
或volley),但通常api返回所有其他详细信息和图像url,而不仅仅是ID。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.