我的for循环没有递增

时间:2015-02-25 11:54:51

标签: java android arraylist

所以我有一个Arraylist包含Strings这些是网址,然后我将这些字符串解析为ImageLoader。我的问题是循环中的int似乎没有要增加,但我知道循环是循环的,因为我得到的输出与Arraylist的大小相同。

以下是代码:

for (int i = 0; i < AsyncDownloader.imageList.size(); i++) {

        String imageUrl = AsyncDownloader.imageList.get(i);
        imageView = new ImageView(mContext);
        imageView.setLayoutParams(new GridView.LayoutParams(1080, 440));
        imageView.setAdjustViewBounds(false);
        imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
        imageView.setPadding(2, 2, 2, 2);

        Log.i(TAG, "Check? " + i);
        imageLoader.displayImage(imageUrl, imageView, options);
        return imageView;
    }

调试日志:

02-25 11:30:27.584 7299-7299/my.app I/Debug﹕ Check? 0 02-25 11:30:27.594 7299-7299/my.app I/Debug﹕ Check? 0 02-25 11:30:27.614 7299-7299/my.app I/Debug﹕ Check? 0 02-25 11:30:27.744 7299-7299/my.app I/Debug﹕ Check? 0...

我尝试过使用ListIterator,但这似乎给了我相同的输出,我尝试将i++放在循环中,以便它运行但后来我得到相同的输出但索引为1。

我也知道这不是ArrayList的内容,因为我也会事先记录下来检查下载网址的时间。

我看过类似的问题,但是他们的代码中似乎都有问题,而且我已经在这里提出的代码已被建议作为修复。

任何帮助将不胜感激。

3 个答案:

答案 0 :(得分:6)

return imageView;

此时您将离开方法而不继续循环。

答案 1 :(得分:4)

return imageView;

因此,您的循环只执行一次,i = 0

答案 2 :(得分:0)

您的问题在

return imageView;

你可以从循环内部删除它。并按以下方式执行

List<imageView> listOfImages = new ArrayList<imageView>();
for (int i = 0; i < AsyncDownloader.imageList.size(); i++) {
// leave your code as it is..
// before return statement just write this one
listOfImages.add(imageView);
// remove return statement from inside the loop

}
// after loop you can return listOfImages arraylist of imageview

return listOfImages;