2017-05-31 209 views
0

我使用此方法從我的應用程序中的ListView中刪除所選項目。 但是當我再次回到我的身邊時,被刪除的項目又重新出現了。如何從ListView和Firebase數據庫中刪除所選項目

我想從Firebase數據庫中刪除選定的項目。我怎麼做 ?任何人都可以建議我。

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(); 
} 

在我的onCreate()方法,我有這樣的:

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

回答

0

你需要保存的關鍵在一個數組,當你從火力地堡在onDataChange(獲取數據),與索引分別在你的ListView中。因此,當在列表中的項目被點擊你得到它的位置,然後你的數組在那個位置上,你拿到鑰匙,然後刪除自火力 例如:

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

希望這有助於

相關問題