【发布时间】:2014-09-09 11:24:40
【问题描述】:
所以我有这段代码遍历 ArrayList 并将其内容添加到 Imageview。我正在检查 ArrayList 在某个索引处是否为空以阻止它处理代码,但问题是它在检查条件时崩溃,即这个 picturePathResults.get(i) != null 给我一个越界异常。这通常发生在 ArrayList 中有一个元素时,它会遍历第一个也是唯一一个元素,然后在第二个循环期间检查时崩溃。我不明白为什么当条件应该阻止这种情况发生时它会崩溃。
for(int i=0; i < allEDs.size(); i++){
LinearLayout singleOptionContainer =new LinearLayout(this.getApplicationContext());
ETResults[i] = allEDs.get(i);
if(picturePathResults.size() != 0 ){
if(picturePathResults.get(i) != null){
picturePathResult = picturePathResults.get(i);
imagesContainer = new ImageView(QuestionCollector.this);
imagesContainer.setId(imageViewTemplateID);
imagesContainer.setBottom(editTextTemplateID);
imagesContainer.setLayoutParams(imageParams);
image = BitmapFactory.decodeFile(picturePathResult);
scaledBitmap = scaleImage(image, 330, 330, 330, true);
imagesContainer.setImageBitmap(scaledBitmap);
singleOptionContainer.addView(imagesContainer);
}else{
return;
}
}
}
【问题讨论】:
-
检查图片路径结果列表的 i 和大小。你可以找出错误
-
试试
if ( i <= picturePathResults.size())而不是if(picturePathResults.size() != 0 )
标签: java android indexoutofboundsexception