0
任何人都可以帮我弄清楚这个(对我来说)奇怪的错误。我一直在看它几个小时,仍然无法弄清楚,我在网上也找不到任何东西。添加对象后,列表大小返回0
我使用retrofit2和OkHttp3来进行一些GET API调用。不知怎的,当我得到一个响应(这是成功的& &体内确实含有什么有),我尝试将其添加到列表中,在循环结束时,列表的大小返回0
final List<Object> objectList = new ArrayList<>();
final AlertDialog.Builder dialogBuilder = new AlertDialog.Builder(activity);
...
dialogBuilder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
API someAPI = new API();
for (int i = 0; i < listWithIds.size(); i++) {
Call<Object> call = someAPI.getObject(listWithIds.get(i).getId());
final int finalI = i;
call.enqueue(new Callback<Object>() {
@Override
public void onResponse(Call<Object> call, Response<Object> response) {
if (response.isSuccessful()) {
objectList.add(response.body());
}
}
@Override
public void onFailure(Call<Object> call, Throwable t) {
}
});
}
}
});
回调是异步的,你是否在队列外或回调中检查列表大小? – lubilis
'List'只在大小为0的情况下才会返回0。因此,您需要检查是否调用了'add'。 –
'finalI'变量的目的是什么?为什么不使用增强的for-loop? –