7
Tôi học về Realm và Recyclerview. Tôi đã thực hiện ứng dụng đơn giản, nơi bạn có thể đơn giản thêm các mục và xóa chúng. Mọi thứ đều hoạt động tốt cho đến khi tôi bắt đầu xóa từng mục một. Tại mục cuối cùng khi tôi nhấp vào xóa nó cho tôi ngoại lệjava.lang.IllegalStateException: Đối tượng không còn được quản lý bởi Realm. Nó đã bị xóa chưa?
java.lang.IllegalStateException: Object is no longer managed by Realm. Has it been deleted?
Đây là mã của tôi
@Override
public void onDeleteClick(int position) {
mRealm.beginTransaction();
mResult.get(position).deleteFromRealm();
mRealm.commitTransaction();
adapter.notifyItemRemoved(position);
}
Ở đây có đầy đủ chồng
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)
Bạn đang dường như cố gắng để đọc 'firstName' sau khi đối tượng đã bị xóa. Một giải pháp sẽ là sử dụng 'obj.isValid()' trong phương thức 'onBindViewHolder' của bạn và sử dụng trạng thái" đã xóa "khi điều đó xảy ra. –