Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/194.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 删除';图像';聊天活动_Java_Android - Fatal编程技术网

Java 删除';图像';聊天活动

Java 删除';图像';聊天活动,java,android,Java,Android,希望你们都好。在我的应用程序中,假设一个用户向接收者发送了一张图像,然后发送了一个pdf/docx文件。现在,如果用户删除了该图像,则剩余的pdf/docx将显示为与已删除图像相同的图像。此外,在接收器端,pdf/docx会实时转换为图像形状。但实际上,图像会从(电话和数据库)两端删除,因为如果用户关闭活动并重新打开,则会找到实际的环境。删除text/pdf/docx不会产生这种效果 ChatActivity课程: private void privateChat() { Databas

希望你们都好。在我的应用程序中,假设一个用户向接收者发送了一张图像,然后发送了一个pdf/docx文件。现在,如果用户删除了该图像,则剩余的pdf/docx将显示为与已删除图像相同的图像。此外,在接收器端,pdf/docx会实时转换为图像形状。但实际上,图像会从(电话和数据库)两端删除,因为如果用户关闭活动并重新打开,则会找到实际的环境。删除text/pdf/docx不会产生这种效果

ChatActivity
课程:

private void privateChat() {
    DatabaseReference userMessageKeyRef = rootRef.child("Messages")
            .child(messageSenderId).child(messageReceiverId).push();

    String messagePushId = userMessageKeyRef.getKey();
    rootRef.child("Messages").child(messageSenderId).child(messageReceiverId)
            .addChildEventListener(new ChildEventListener() {
                @Override
                public void onChildAdded(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {
                    Messages messages = snapshot.getValue(Messages.class);
                    messagesList.add(messages);
                    messageAdapter.notifyItemInserted(messagesList.size());
                    userMessagesList.smoothScrollToPosition(Objects.requireNonNull(userMessagesList.getAdapter())
                            .getItemCount());
                }

                @Override
                public void onChildChanged(@NonNull DataSnapshot snapshot, @Nullable String previousChildName) {

                }

                @Override
                public void onChildRemoved(@NonNull DataSnapshot snapshot) {
                    Messages messagesRemoved = snapshot.getValue(Messages.class);

                    for (int i = 0; i < messagesList.size(); i++) {

                        assert messagesRemoved != null;

                        if (messagesList.get(i).getMessageId().equals(messagesRemoved.getMessageId())) {
                            messagesList.remove(i);
                            messageAdapter.notifyItemRemoved(i);
                            messageAdapter.notifyDataSetChanged();
                            break;
                        }
                    }
                }

                @Override
                public void onChildMoved(@NonNull DataSnapshot snapshot, @Nullable String
                        previousChildName) {

                }

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

                }
            });
}
其中
deleteSentMessage()
方法为:

private void deleteSentMessage(final int position, final MessageViewHolder messageViewHolder) {
    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    rootRef.child("Messages").child(userMessagesList.get(position).getFrom())
            .child(userMessagesList.get(position).getTo())
            .child(userMessagesList.get(position).getMessageId())
            .removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                Toast.makeText(messageViewHolder.itemView.getContext(), "Deleted Successfully",
                        Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(messageViewHolder.itemView.getContext(), "Something Wrong",
                        Toast.LENGTH_SHORT).show();
            }
        }
    });
}
deleteMessageForEveryone()
方法:

private void deleteReceivedMessage(final int position, final MessageViewHolder messageViewHolder) {
    DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    rootRef.child("Messages").child(userMessagesList.get(position).getTo())
            .child(userMessagesList.get(position).getFrom())
            .child(userMessagesList.get(position).getMessageId())
            .removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                Toast.makeText(messageViewHolder.itemView.getContext(), "Deleted Successfully",
                        Toast.LENGTH_SHORT).show();
            } else {
                Toast.makeText(messageViewHolder.itemView.getContext(), "Something Wrong",
                        Toast.LENGTH_SHORT).show();
            }
        }
    });
}
private void deleteMessageForEveryone(final int position, final MessageViewHolder messageViewHolder) {
    final DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    rootRef.child("Messages").child(userMessagesList.get(position).getTo())
            .child(userMessagesList.get(position).getFrom())
            .child(userMessagesList.get(position).getMessageId())
            .removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                rootRef.child("Messages").child(userMessagesList.get(position).getFrom())
                        .child(userMessagesList.get(position).getTo())
                        .child(userMessagesList.get(position).getMessageId())
                        .removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()) {
                            Toast.makeText(messageViewHolder.itemView.getContext(), "Deleted Successfully",
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                });
            } else {
               Toast.makeText(messageViewHolder.itemView.getContext(), "Something Wrong",
                        Toast.LENGTH_SHORT).show();
            }
        }
    });
}
private void deleteMessageForEveryone(最终int位置,最终MessageViewHolder MessageViewHolder){
final DatabaseReference rootRef=FirebaseDatabase.getInstance().getReference();
rootRef.child(“Messages”).child(userMessagesList.get(position.getTo())
.child(userMessagesList.get(位置).getFrom())
.child(userMessagesList.get(position).getMessageId())
.removeValue().addOnCompleteListener(新OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
rootRef.child(“Messages”).child(userMessagesList.get(position.getFrom())
.child(userMessagesList.get(position.getTo())
.child(userMessagesList.get(position).getMessageId())
.removeValue().addOnCompleteListener(新OnCompleteListener()){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
Toast.makeText(messageViewHolder.itemView.getContext(),“已成功删除”,
吐司。长度(短)。show();
}
}
});
}否则{
Toast.makeText(messageViewHolder.itemView.getContext(),“有问题”,
吐司。长度(短)。show();
}
}
});
}
private void deleteMessageForEveryone(final int position, final MessageViewHolder messageViewHolder) {
    final DatabaseReference rootRef = FirebaseDatabase.getInstance().getReference();
    rootRef.child("Messages").child(userMessagesList.get(position).getTo())
            .child(userMessagesList.get(position).getFrom())
            .child(userMessagesList.get(position).getMessageId())
            .removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
        @Override
        public void onComplete(@NonNull Task<Void> task) {
            if (task.isSuccessful()) {
                rootRef.child("Messages").child(userMessagesList.get(position).getFrom())
                        .child(userMessagesList.get(position).getTo())
                        .child(userMessagesList.get(position).getMessageId())
                        .removeValue().addOnCompleteListener(new OnCompleteListener<Void>() {
                    @Override
                    public void onComplete(@NonNull Task<Void> task) {
                        if (task.isSuccessful()) {
                            Toast.makeText(messageViewHolder.itemView.getContext(), "Deleted Successfully",
                                    Toast.LENGTH_SHORT).show();
                        }
                    }
                });
            } else {
               Toast.makeText(messageViewHolder.itemView.getContext(), "Something Wrong",
                        Toast.LENGTH_SHORT).show();
            }
        }
    });
}