Сбой приложения при удалении элемента из списка массивов

Сбой моего приложения при попытке удалить объект из списка массивов:

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

            }

почему это происходит и как это исправить?

1 ответ

Решение

Если вы получаете ConcurrentException, это означает, что вы просматриваете список, который вы изменяете. В ArrayLists вы не можете сделать это. Попробуйте использовать Queue как это вместо ArrayList:

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

Вы можете проходить через него таким же образом, но он не должен больше падать.

Другие вопросы по тегам