繁体   English   中英

通过不同的api调用在回收器视图中加载每个项目

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM