Я пытаюсь передать простой массив строк в мою асинтезу, но это только передача одного элемента. Я знаю, что мой arraylist заполнен 20 элементами перед вызовом asynctask, но когда я проверяю размер в 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', а не ** t **. Я думаю, это была опечатка в коде. – Ali