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

app crash when deleting item from array list

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

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

            }

为什么会发生这种情况以及如何解决?

如果您得到 ConcurrentException,这意味着您正在遍历您正在修改的列表。在 ArrayLists 中,你不能这样做。尝试使用这样的 Queue,而不是 ArrayList:

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

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