对recyclerview所做的更改不保存

0ve6wy6x  于 2021-06-30  发布在  Java
关注(0)|答案(0)|浏览(202)

我使用firebase数据库将信息加载到recyclerview中。通过使用itemtouchhelper,我能够在recyclerview中重新定位项目。但是,对recyclerview所做的更改不会保存,并且在结束活动时总是返回到其原始状态。如何修复代码以使更改永久持续?

ItemTouchHelper.SimpleCallback simpleCallback = new 
ItemTouchHelper.SimpleCallback(ItemTouchHelper.UP | ItemTouchHelper.DOWN | ItemTouchHelper.START | 
ItemTouchHelper.END, 0) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder 
viewHolder, @NonNull RecyclerView.ViewHolder target) {
int fromPosition = viewHolder.getAdapterPosition();
int toPosition = target.getAdapterPosition();

Collections.swap(List, fromPosition, toPosition);

adapter.notifyItemMoved(fromPosition, toPosition);
return true;
}

 @Override
 public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {

 }};
private void loadList() {
 List = new ArrayList<>();
 DatabaseReference databaseReference = FirebaseDatabase.getInstance().getReference("List");
 databaseReference.addValueEventListener(new ValueEventListener() {
 @Override
 public void onDataChange(@NonNull DataSnapshot snapshot) {
    List.clear();
    for(DataSnapshot ss: snapshot.getChildren()){
        if(ss.child("moreList").child(ID).exists()){
            ListModel model = ss.getValue(ListModel.class);
            List.add(model);
        }
    }
    adapter = new ListAdapter(getActivity(), List);
    RecyclerView.setAdapter(adapter);
    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleCallback);
    itemTouchHelper.attachToRecyclerView(RecyclerView);

}

@Override
public void onCancelled(@NonNull DatabaseError error) {

}
});

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题