2015-11-28 2 views
0

Сбрасывание Realm ConcurrentModificationException при обновлении Model класс.Невозможно изменить объект Realm во время итерации через результаты

java.util.ConcurrentModificationException: No outside changes to a Realm is allowed while iterating a RealmResults. Use iterators methods instead. 

Это мой код -

Realm realm = Realm.getDefaultInstance(); 
RealmQuery<Model> query = realm.where(Model.class); 
query.equalTo("decision", getString(android.R.string.yes)); 
ListIterator<Model> listIterator = query.findAll().listIterator(); 
realm.beginTransaction(); 
while (listIterator.hasNext()) { 
    Model model = listIterator.next(); 
    model.setDecision(getString(android.R.string.no)); 
} 
realm.commitTransaction(); 

ответ

2

Просто используйте нормальный цикл

realm.beginTransaction(); 
int size = results.size(); 
for (int i = size-1; i >= 0; i--) { 
    results.get(i).setDecision(getString(android.R.string.no)); 
} 
realm.commitTransaction(); 
+0

Но исключение говорит 'Использование методов итераторов instead.' – mjosh

+0

Избегайте итераторы. –

+0

Все еще не работает, хотя я не получаю ошибку, ее единственная модификация половины предметов, другая половина остается неизменной. – mjosh

Смежные вопросы