Java.lang.IllegalStateException: Objeto ya no es administrado por Realm. ¿Se ha eliminado?
Estoy aprendiendo Realm y Recyclerview. Hice una aplicación sencilla donde puedes agregar elementos y eliminarlos. Todo está funcionando bien hasta que empiece a eliminar el elemento uno por uno. En el último elemento cuando hago clic en Eliminar me dan una excepción
java.lang.IllegalStateException: Object is no longer managed by Realm. Has it been deleted?
Este es mi codigo
- Persistente hoja inferior con vista recicladora
- Force RecyclerView para volver a dibujar Android
- Lista de desplazamiento vertical y horizontal o cuadrícula en Android
- ¿Cómo implementar el pie de página pegajoso en recyclerview
- Cómo poner RecyclerView dentro de NestedScrollView?
@Override public void onDeleteClick(int position) { mRealm.beginTransaction(); mResult.get(position).deleteFromRealm(); mRealm.commitTransaction(); adapter.notifyItemRemoved(position); }
Aquí está la pila completa
java.lang.IllegalStateException: Object is no longer managed by Realm. Has it been deleted? at io.realm.internal.InvalidRow.getStubException(InvalidRow.java:192) at io.realm.internal.InvalidRow.getString(InvalidRow.java:88) at io.realm.PersonsRealmProxy.realmGet$firstName(PersonsRealmProxy.java:67) at techiespk.realmpractice.Persons.getFirstName(Persons.java:22) at techiespk.realmpractice.MyListAdapter.onBindViewHolder(MyListAdapter.java:44) at techiespk.realmpractice.MyListAdapter.onBindViewHolder(MyListAdapter.java:15) at android.support.v7.widget.RecyclerView$Adapter.onBindViewHolder(RecyclerView.java:5471) at android.support.v7.widget.RecyclerView$Adapter.bindViewHolder(RecyclerView.java:5504) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4741) at android.support.v7.widget.RecyclerView$Recycler.getViewForPosition(RecyclerView.java:4617) at android.support.v7.widget.LinearLayoutManager$LayoutState.next(LinearLayoutManager.java:1994) at android.support.v7.widget.LinearLayoutManager.layoutChunk(LinearLayoutManager.java:1390) at android.support.v7.widget.LinearLayoutManager.fill(LinearLayoutManager.java:1353) at android.support.v7.widget.LinearLayoutManager.onLayoutChildren(LinearLayoutManager.java:574) at android.support.v7.widget.RecyclerView.dispatchLayoutStep2(RecyclerView.java:3028) at android.support.v7.widget.RecyclerView.dispatchLayout(RecyclerView.java:2906) at android.support.v7.widget.RecyclerView.onLayout(RecyclerView.java:3283)
- El rollo no funciona correctamente para RecyclerView dentro de CoordinatorLayout
- NestedScrolling con NestedScrollView, RecyclerView (Horizontal), dentro de un CoordinatorLayout
- Vista de Google Maps dentro de un RecyclerView
- RecyclerView desplazamiento sobre inserto
- NestedScrollView y Horizontal RecyclerView Smooth Scrolling
- Espresso Nested Recycler Vistas Prueba de interfaz de usuario
- Cómo hacer que RecyclerView se desplace sin problemas?
- Transición personalizada de elementos compartidos en la actividad final
Ok gracias a Christian Melchior por ayuda. He arreglado mi código haciendo esto
antes de
@Override public void onBindViewHolder(MyListViewHolder holder, int position) { Persons p = persons.get(position); holder.firstName.setText(p.getFirstName()); holder.lastName.setText(p.getLastName()); }
Después
@Override public void onBindViewHolder(MyListViewHolder holder, int position) { if (persons.get(position).isValid()) { Persons p = persons.get(position); holder.firstName.setText(p.getFirstName()); holder.lastName.setText(p.getLastName()); } }
- Android Studio, cómo configurar proyectos de biblioteca compartida
- Android: Espresso no espera hasta que se muestre fragmento o actividad para que cada prueba fallara