2017-05-31 8 views
0

私のアプリでListViewから選択したアイテムを削除するために、このメソッドを使用しました。 しかし、私が再び私のところに戻ったとき、削除されたアイテムが再び現れてきています。ListViewとFirebaseデータベースの両方から選択したアイテムを削除する方法

Firebaseデータベースから選択したアイテムも削除します。それ、どうやったら出来るの ?誰も私を提案することはできますか?私のonCreate()メソッドで

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

、私はこれを持っている:

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

答えて

0

あなたはOnDataChangeの中Firebase(からデータをフェッチしているときは、配列内のキーを保存する必要があります)、とあなたのListViewのそれぞれのインデックス。リスト内の項目は、あなたがその位置にあなたの配列で、その位置を取得し、クリックされたので、ときに、あなたは、キーを取得し、例えばfirebase からそれを削除します。

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

希望はこれが

に役立ちます
関連する問題