Realm: Iterando un RealmObject y borrando un campo ArrayList

Tengo un RealmResults<Section> que tiene un campo RealmList<Event> que quiero borrar en cada sección.

He intentado (insude mRealm.executeTransaction)

 for (Section section : mSections) { section.getEvents().clear(); } 

y

 Iterator<Section> sectionIterator = mSections.iterator(); while (sectionIterator.hasNext()) { sectionIterator.next().getEvents().clear(); } 

Pero Realm lanza esta excepción

Java.util.ConcurrentModificationException: No se permiten cambios externos a un Realm mientras se itera un RealmResults. Utilice métodos de iteradores en su lugar.

Puesto que en realidad no está eliminando elementos que está iterando, sólo puede utilizar un bucle tradicional para:

 for (int i = 0; i < mSections.size(); i++) { mSections.get(i).getEvents().clear(); } 

Tenga en cuenta que si necesitara eliminar elementos usando un Iterator , necesitaría usar el método remove() en el Iterator .

Vea la documentación

  • Llamando Realm.close () fuera de la actividad
  • Android Realm número de versión de migración basado en qué?
  • Builder (android.content.Context) 'no es público en' io.realm.RealmConfiguration.Builder '. No se puede acceder desde el paquete exterior
  • Abra el reino con una nueva configuración real
  • RealmBaseAdapter con encabezados de sección
  • RealmResult consulta de nuevo
  • Archivo default.realm no se muestra en el navegador de cromo
  • Modo correcto de hacer la migración de Realm
  • Acceso al dominio desde un subproceso incorrecto Excepción mientras se envió una copia usando copyFromRealm
  • Android no puede encontrar la dependencia gradle reino
  • Error de acceso de realm de subproceso incorrecto al usar código compartido entre IntentService y AsyncTask (Android)
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.