0

我正在尝试在 RecyclerView 中实现滑动以存档笔记。
它工作正常,但是在我添加这些代码以从 刷新 RecyclerView 之后onResume(),Swiping 虽然确实存档了 Note,但该项目不会被删除并保持在您可以在下图中看到的状态:

在此处输入图像描述

这就是我所做的onResume()

@Override
    protected void onResume() {
        super.onResume();
        notes = noteDAO.getAllNotes();
        noteAdapter = new NoteAdapter(notes,this);
        recyclerView.setAdapter(noteAdapter);
    }  

ItemTouchHelper onSwiped()

@Override
    public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
        int position = viewHolder.getAdapterPosition();
        noteAdapter.deleteItem(position,rv);
    }  

deleteItem适配器中的方法:

    public void deleteItem(int position, RecyclerView rv) {
            noteDAO = DBInjector.provideNoteDao(context);
            recentlyDeletedNote = notes.get(position);
            recentlyDeletedNotePosition = position;
            recentlyDeletedNote.setArchive(true);
            notes.remove(position);
            noteDAO.archiveNote(recentlyDeletedNote);
            notifyItemRemoved(position);
    }
4

1 回答 1

0

我尝试了很多解决方案,它不更新视图的唯一原因是在更新回收器视图时,视图正在更新,尤其是在使用ItemTouchHelper时。因为我没有太多选择,所以我使用了

重新创建()

刷新整个活动的功能并且错误消失了。

PS:这不是理想的解决方案,它只是解决方法修复。

于 2021-08-27T06:38:01.460 回答