0
Ich bekomme eine Menge IllegalStateExceptions, die schwer zu debuggen sind. Sie treten auf, wenn ich ein Realm-Objekt aus einem RealmAdapter lösche. Für den RealmAdapter verwende ich die 'io.realm: android-adapter: 1.3.0' Version.Realm-Objekt aus RealmRecyclerViewAdapter löschen
Dies ist, wie ich mein Objekt auf lange drücken in meinem Adapter löschen:
//Delete message object
new MaterialDialog.Builder(holder.cardView.getContext()).title("Delete")
.content("Delete message?")
.positiveText("YES")
.negativeText("Cancel")
.onPositive(new MaterialDialog.SingleButtonCallback() {
@Override
public void onClick(@NonNull MaterialDialog dialog, @NonNull DialogAction which) {
//Call delete
ApiManager.ApiManagerService apiManagerService = ApiManager.createService(ApiManager.ApiManagerService.class);
apiManagerService.deleteMessage(message.getId()).enqueue(new Callback<Void>() {
@Override
public void onResponse(Call<Void> call, Response<Void> response) {
Logger.d("delete message onResponse callback");
//Delete from realm
Realm realm = Realm.getDefaultInstance();
realm.beginTransaction();
try {
message.deleteFromRealm();
} catch(Exception e) {
e.printStackTrace();
}
realm.commitTransaction();
//Notify adapter
notifyDataSetChanged();
}
@Override
public void onFailure(Call<Void> call, Throwable t) {
Logger.d("delete message onFailure callback");
}
});
}
})
.show();
return false;
}
Ist der richtige Weg, um ein Objekt von innen einem Adapter zu handhaben zu löschen?