如何从ListView和Firebase数据库中删除所选项目

问题描述:

我使用此方法从我的应用程序中的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; 
    } 
}); 

你需要保存的关键在一个数组,当你从火力地堡在onDataChange(获取数据),与索引分别在你的ListView中。因此,当在列表中的项目被点击你得到它的位置,然后你的数组在那个位置上,你拿到钥匙,然后删除自火力 例如:

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

希望这有助于