Я пытаюсь реализовать элемент удаления в ReceyclerView, поддерживаемом Realm. Когда пользователь выбирает элемент в RecyclerView, я перевожу пользователя в другое действие, где ему предоставляется возможность удалить выбранный элемент. Если пользователь удалит элемент, я хочу, чтобы они вернулись к предыдущему действию.
Однако, когда они возвращаются к предыдущему действию, удаленный элемент все еще отображается, хотя теперь он равен нулю. Я использовал как собственный RecyclerView, так и RealmRecyclerView, но безуспешно.
В MainActivity я запускаю подробное действие, подобное этому
public void showNoteDetailUi(int noteId) {
Intent intent = new Intent(this, NoteDetailActivity.class);
intent.putExtra("noteId", noteId);
startActivity(intent);
}
И в подробностях Activity я удаляю такой элемент
@Override
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
switch (id){
case R.id.action_delete:
mRealm.beginTransaction();
Note note = getNote(id);
note.removeFromRealm();
mRealm.commitTransaction();
onBackPressed();
break;
}
return super.onOptionsItemSelected(item);
}
Я определил свои методы CRUD в отдельном файле, который я называю NoteManager, вот часть содержимого этого NoteManager, который показывает, как я получаю список элементов из Realm.
public class NoteRealmManager implements NotesContract.Service{
private Realm mRealm;
public NoteRealmManager(Context context){
mRealm = Realm.getInstance(context);
}
@Override
public void delete(int id) {
mRealm.beginTransaction();
Note note = getNote(id);
note.removeFromRealm();
mRealm.commitTransaction();
}
@Override
public RealmResults<Note> getAllNotes() {
mRealm.refresh();
RealmResults<Note> noteModels =
mRealm.where(Note.class).findAll();
return noteModels;
}
}
И я ввожу этот класс в каждую активность, подобную этой.
@Module
public class PersistenceModule {
@Provides @Singleton
public NotesContract.Service providesNoteManager(Context context){
return new NoteRealmManager(context);
}
}
И
@Inject NotesContract.Service mNoteManager
Я попытался обновить список, есть идеи, как заставить Realm не отображать нулевые данные в RecyclerView?
Спасибо