【发布时间】:2020-12-01 06:58:54
【问题描述】:
我的应用中有一个 recyclerview,它显示了用户在 firebase 数据库中保存的笔记。在长按笔记时,用户可以选择是否删除笔记。 recyclerview 中列出的每条笔记都会从数据库中删除,并从 recyclerview 中删除,除了最后一条。最后一个会从数据库中删除,但不会从列表中清除。一旦我们回到 mainactivity,然后再次打开 savednotes 活动,列表就会被清除。
这是我长按按钮的代码:
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
AlertDialog.Builder alertDialog = new AlertDialog.Builder(context);
alertDialog.setCancelable(true)
.setTitle("Do you really want to delete this note?")
.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
String name = model.getNoteName();
String userId = auth.getUid();
DatabaseReference reference = FirebaseDatabase.getInstance()
.getReference();
Query delete = reference.child("UserData").child(userId)
.orderByChild("Note Name").equalTo(name);
delete.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(@NonNull DataSnapshot snapshot) {
for (DataSnapshot deleteSnapshot : snapshot.getChildren()) {
deleteSnapshot.getRef().removeValue();
}
}
@Override
public void onCancelled(@NonNull DatabaseError error) {
}
});
}
})
.setNegativeButton("No", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
}
})
.show();
return true;
}
});
我不知道这里有什么遗漏或错误。任何帮助将不胜感激:)
【问题讨论】:
标签: android firebase firebase-realtime-database android-recyclerview