从数组列表中删除项目时应用程序崩溃

时间:2017-06-14 01:59:12

标签: java android android-custom-view paint eraser

当我尝试从数组列表中删除对象时,我的应用程序崩溃了:

for (ColouredPaths p : mTouches) {
            if(erase){
                if(p!=null)
                {  mTouches.remove(p);}

            }

为什么会发生这种情况以及如何修复?

1 个答案:

答案 0 :(得分:0)

如果您获得ConcurrentException,则表示您正在循环浏览您正在修改的列表。在ArrayLists中,您无法执行此操作。尝试使用Queue这样的代替ArrayList

Queue<ColouredPaths> mTouches = new ConcurrentLinkedQueue<>();

你可以用同样的方式遍历它,但它不应该再崩溃了。