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