我使用了SurfaceView绘图,但是在Run()方法中移除ArrayList 中的元素怎么游戏界面就卡住了,怎么回事????还有使用AlterDialog 也是出现卡住情况,直接就死机了
for( Yun image:(List)yunList){
canvas.drawBitmap(image.getBitmap(), image.getX(),image.getY(), p1);
if (image.getX()<=image.getWidth())
{
yunList.remove(image);
}
}
for( Yun image:(List)yunList){
canvas.drawBitmap(image.getBitmap(), image.getX(),image.getY(), p1);
if (image.getX()<=image.getWidth());
yunList.remove(image);
}
直接移除是可以的,但是加在判断中就不可以移除了,怎么回事????????
你在遍历的时候改变了 yunlist 本身的size 在取第size的值时取不到 属于 非法操作
public List<Yun> removeItem(){
ArrayList<Yun> yunList = new ArrayList<>();
final ArrayList<Yun> imageList = new ArrayList<>(yunList);
for (int i =yunList.size()-1;i>=0;i++) {
if (yunList.get(i).getX()<=yunList.get(i).getWidth){
imageList.remove(i);
}
}
return imageList;
}