我使用此方法从我的应用中的ListView
中删除所选项目。
但当我再次回到我身边时,已删除的项目将重新出现。
我也想从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 :(得分:0)
当您从onDataChange()中的Firebase获取数据时,您需要将密钥保存在数组中,其索引与ListView中的索引相对应。因此,当单击列表中的项目时,您将获得其位置,然后在该位置的数组中获取密钥,然后从firebase中删除它 例如:
String key = fetchedDropsList.get(position);
mRef.child(key).removeValue();
希望这有帮助