从不同的api调用

时间:2017-12-23 11:33:09

标签: android android-recyclerview recycler-adapter

我有一个帖子请求,它给出了ID列表。我必须ping每个id的多个请求以获取项目数据(该特定id的图像,文本等)并填充我的Recycler视图。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:0)

迭代id并在循环中根据id发出请求,你将得到一个响应并添加到数组列表然后传递给适配器。

答案 1 :(得分:0)

在获得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());
    }
 }      
}

答案 2 :(得分:0)

使用Picasso或其他等效文件来获取onBindViewHolder中的图像和普通网络库,例如改装或排球,但通常api会返回所有其他详细信息和图片网址,而不仅仅是ID。