Удалить Item через ListView(выделение Item) в firebase
Вывожу свою базу данных в ListView. Скажите как удалить определенный Item через ListView(методом выделение Item) из firebase....
получаю данные так:
private ArrayList<String> keylist = new ArrayList<>();
private ArrayList <ClientModel> user = new ArrayList<>();
DatabaseReference rootRef1 = FirebaseDatabase.getInstance().getReference();
DatabaseReference uidRef1 = rootRef1.child("Markers").child(firebaseAuth.getCurrentUser().getUid());
uidRef1.addChildEventListener(new ChildEventListener() {
@Override
public void onChildAdded(@NonNull DataSnapshot dataSnapshot, @Nullable String s) {
String key = dataSnapshot.getKey();
Double latitude = dataSnapshot.child("latitude").getValue(Double.class);
Double longitude = dataSnapshot.child("longitude").getValue(Double.class);
ClientModel data1 = dataSnapshot.getValue(ClientModel.class);
keylist.add(key);
user.add(data1);
adapter.notifyDataSetChanged();
}
@Override
public void onChildChanged(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) {
}
});
}
что писать в Listview ???
listview.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
@Override
public boolean onItemLongClick(AdapterView<?> arg0, View arg1, final int position, long arg3) {
});
Ответы (1 шт):
Автор решения: Анастасия
→ Ссылка
Сначала получаете выделенный элемент. Соответственно того класса, которым у Вас представляются элементы Вашего списка, для примера - String. Или потом из полученного элемента вытягиваете id или нужные атрибуты.
final String itemToDelete = (String)listView.getItemAtPosition(position);
Затем при желании (ну и желательно) добавить AlertDialog, где можно было бы подтвердить/отменить удаление, например, так:
final AlertDialog.Builder builder=new AlertDialog.Builder(YourActivity.this);
builder.setTitle("Вы точно хотите удалить этот элемент?");
builder.setPositiveButton("Да", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
try{
yourDatabaseReference.child(itemToDelete).removeValue();
} catch (Exception e){}
}
});
builder.setNegativeButton("Нет", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
builder.show();
Надеюсь, это Вам поможет.