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? –