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

Java 从数组列表中删除项时应用程序崩溃,java,android,android-custom-view,paint,eraser,Java,Android,Android Custom View,Paint,Eraser,尝试从数组列表中删除对象时,我的应用程序崩溃: for (ColouredPaths p : mTouches) { if(erase){ if(p!=null) { mTouches.remove(p);} } 为什么会发生这种情况以及如何修复?如果您得到一个ConcurrentException,这意味着您正在修改一个列表。在ArrayList中,您不能这样做。尝试像这样使用

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

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

            }

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

如果您得到一个
ConcurrentException
,这意味着您正在修改一个列表。在ArrayList中,您不能这样做。尝试像这样使用
队列
,而不是
数组列表

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

你可以用同样的方法循环,但它不会再崩溃。

@K.Sopheak这不是beta版用户构建,这是it@K.Sopheak这不是beta版用户构建,这是itNo,这是一种Java
Collections
行为。我在回答中解释了。@rgl解决了吗?我已经使用了
ConcurrentLinkedQueue
s一段时间了,它们似乎工作得很好。您能帮我将橡皮擦添加到此视图中吗!!因为我不能删除接触点,我只能删除整个油漆,提前谢谢