我想將一個簡單的字符串數組傳遞給我的asynctask,但它只傳遞一個元素。我知道我的數組列表在調用asynctask之前填充了20個元素,但是當我在doinBackground中檢查大小時,它只有一個。我看了一些例子,問題和答案,與我的很相似,但它仍然只是通過這一個元素。任何幫助將不勝感激...只有一個數組元素傳遞給我的asynctask
new LoadImageTask().execute(tuxUrls); //tuxUrls has 20 elements
...
private class LoadImageTask extends AsyncTask<ArrayList<String>, Void, ArrayList<Bitmap>> {
private String name;
Bitmap imageBitmap;
ArrayList<TuxLoader> milTuxs = new ArrayList<TuxLoader>();
@Override
//protected ArrayList<TuxLoader> doInBackground(ArrayList<String>... tuxUrls) {
System.out.println("TuxUrlCount = " + tuxUrls.length);
ArrayList<String> t = tuxUrls[0]; //thought I was passing entire array here
try {
for(int i=0; i<tuxUrls.length; i++) {
URL imageUrl = new URL(t[i]);
//do work
}
...
} catch (Exception e) {
Log.e("error", "Image Download Failed");
}
return milTuxs;
}
@Override
protected void onPostExecute(ArrayList<TuxLoader> milTuxs) {
super.onPostExecute(milTuxs);
// TODO Auto-generated method stub
//set the grid Adapter
...
'tuxUrls'是一個數組還是'ArrayList'? –
是在doInBackground參數是'ArrayList的 ... tuxUrls'這意味着'的ArrayList [] tuxUrls' –
Ali
@Skip,您可以通過'tuxUrls',而不是**噸循環**。我猜這是代碼中的一個錯字。 – Ali