左のスワイプでFirebaseからオブジェクトを削除したいとします。スワイプですべてうまく動作し、ビューから削除されましたが、データベースに残ります。スワイプでFirebaseオブジェクトを削除する
私は自分のonCreateに以下を追加しました:
ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT) {
@Override
public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
Toast.makeText(ListBox.this, "Item removed", Toast.LENGTH_SHORT).show();
//Remove swiped item from list and notify the RecyclerView
}
};
、これは私が私のViewHolderを移入する方法です。
@Override
protected void populateViewHolder(final BoxViewHolder viewHolder, final Box model, int position) {
viewHolder.setTitle(model.getTitle());
final String boxUniqueKey = model.getBoxkey();
final DatabaseReference postRef = getRef(position);
final String postKey = postRef.getKey();
viewHolder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Launch BoxItem view
final Intent intent = new Intent(ListBox.this, AddBoxItem.class);
String boxkey = model.getBoxkey();
String boxName = model.getTitle();
startActivity(intent);
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(allBoxes);
}
});
}
ただし、アイテムの位置はどのように取得できますか、削除クエリをFirebaseデータベースに送信するにはどうすればよいですか。
あなたは 'onSwipe'内の' BoxViewHolder'を与えることができます。しかし、あなたは、BoxViewHolderの一部として格納されたデータのIDまたは位置を必要とします –