Есть приложение которое отправляет информацию в бд, и отображает ее в TextView, что-то типа чата, как сделать, чтобы если зажал это сообщение, оно удалилось из бд. Ниже код) (Android Studio последней версии)
// activity_main (1ый файл)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical"
android:background="@drawable/fon">
<androidx.recyclerview.widget.RecyclerView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/messages_recycler"
android:layout_weight="1"/>
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="@string/message_input"
android:textColor="#000000"
android:id="@+id/message_input"
android:textSize="24sp" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/send_message_b"
android:text="@string/send_button_name"
android:textSize="24sp"
android:background="#32cd32"/>
</LinearLayout>
</LinearLayout>
// само сообщение
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">
<androidx.cardview.widget.CardView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="5dp"
android:padding="4dp"
android:id="@+id/card_id">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/message_item"
android:textSize="26sp"
android:padding="4dp"
android:textColor="#000000"
android:textStyle="italic"
android:background="#b2ec5d"/>
</androidx.cardview.widget.CardView>
</RelativeLayout>
// Main
package com.example.anew;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AppCompatActivity;
import androidx.cardview.widget.CardView;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.MotionEvent;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;
import com.google.firebase.database.ChildEventListener;
import com.google.firebase.database.DataSnapshot;
import com.google.firebase.database.DatabaseError;
import com.google.firebase.database.DatabaseReference;
import com.google.firebase.database.FirebaseDatabase;
import java.util.ArrayList;
public class MainActivity extends AppCompatActivity {
private static int MAX_MESSAGE_LENGTH = 100;
FirebaseDatabase database = FirebaseDatabase.getInstance();
DatabaseReference myRef = database.getReference("messages");
EditText mEditTextMessage;
Button mSendButton;
RecyclerView mMessageRecycler;
ArrayList<String> messages = new ArrayList<>();
@SuppressLint("ClickableViewAccessibility")
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mSendButton = findViewById(R.id.send_message_b);
mEditTextMessage = findViewById(R.id.message_input);
mMessageRecycler = findViewById(R.id.messages_recycler);
mMessageRecycler.setLayoutManager(new LinearLayoutManager(this));
final DataAdapter dataAdapter = new DataAdapter(this, messages);
mMessageRecycler.setAdapter(dataAdapter);
mSendButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String msg = mEditTextMessage.getText().toString();
if (msg.equals("")) {
Toast.makeText(getApplicationContext(), "Введите сообщение!",Toast.LENGTH_SHORT).show();
return;
}
if (msg.length() > MAX_MESSAGE_LENGTH){
Toast.makeText(getApplicationContext(), "Капец ты много написал!",Toast.LENGTH_SHORT).show();
return;
}
myRef.push().setValue(msg);
mEditTextMessage.setText("");
}
});
myRef.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
String msg = dataSnapshot.getValue(String.class);
messages.add(msg);
dataAdapter.notifyDataSetChanged();
mMessageRecycler.smoothScrollToPosition(messages.size());
}
@Override
public void onChildChanged(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onChildRemoved(@NonNull DataSnapshot dataSnapshot) {
}
@Override
public void onChildMoved(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
}
@Override
public void onCancelled(@NonNull DatabaseError databaseError) {
}
});
}
}