2017-05-31 9 views
0

Ich habe diese Methode zum Entfernen des ausgewählten Elements aus der ListView in meiner App verwendet. Aber wenn ich wieder zu mir komme, werden die gelöschten Objekte wieder angezeigt.So löschen Sie das ausgewählte Element aus der ListView- und Firebase-Datenbank

Ich möchte auch das ausgewählte Element aus der Firebase-Datenbank löschen. Wie mache ich das ? Kann mir jemand vorschlagen?

private void removeItemFromPosition(int position) { 

    final int deletePosition = position; 
    AlertDialog.Builder alert = new AlertDialog.Builder(
    MainActivity.this); 
    alert.setTitle("Delete"); 
    alert.setMessage("Do you want delete this post?"); 

    alert.setPositiveButton("YES", new OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     messages.remove(deletePosition); 
     Log.d(TAG, "Messages: " + messages); 
     mMessageAdapter.notifyDataSetChanged(); 
     mMessageAdapter.notifyDataSetInvalidated(); 
    } 
    }); 

    alert.setNegativeButton("CANCEL", new OnClickListener() { 
    @Override 
    public void onClick(DialogInterface dialog, int which) { 
     dialog.dismiss(); 
    } 
    }); 
    alert.show(); 
} 

In meinem onCreate() -Methode, ich habe dies:

mMessageListView.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() { 
    @Override 
    public boolean onItemLongClick(AdapterView <<?> parent, View view, int position, long id) { 
    removeItemFromPosition(position); 
    return true; 
    } 
}); 

Antwort

0

Sie finden den Schlüssel in einem Array speichern müssen, wenn Sie Ihre Daten von Firebase in OnDataChange() sind zu holen, mit Index entsprechend dem in Ihrem ListView. So Wenn ein Element in der Liste geklickt wird Sie seine Position und dann in Ihrem Array an dieser Position erhalten Sie die Schlüssel und löschen Sie, dass aus Feuerbasis Beispiel:

String key = fetchedDropsList.get(position); mRef.child(key).removeValue();

this helps

Verwandte Themen