如何从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();
希望这有助于