我有一个帖子请求,给我列出的ID。我必须ping每个id的多个请求以获取项目数据(该特定id的图像,文本等)并填充我的Recycler视图。做这个的最好方式是什么?
一旦你得到了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());
}
}
}
迭代id并在循环中根据id发出请求,你将得到一个响应并添加到数组列表然后传递给适配器。
使用Picasso或其他等价物来获取图像和普通网络库,如onBindViewHolder
中的改造或排球,但通常api会返回所有其他细节和图像网址,而不仅仅是ID。