【发布时间】:2019-11-28 11:51:00
【问题描述】:
我在 Fragment 的 onStart() 方法中有以下代码:
final FirestoreRecyclerAdapter adapter = new FirestoreRecyclerAdapter<NewTask, TasksViewHolder>(options) {
@Override
protected void onBindViewHolder(@NonNull final TasksViewHolder holder, final int position, @NonNull NewTask model) {
holder.setTaskTitle(model.getTaskTitle());
holder.setTaskPrivacy(model.isTaskPrivacy());
holder.setTaskColor(model.getTaskColor());
//<----- ONCLICK OF A TASK ----->
holder.mView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
final DocumentReference ref = getSnapshots().getSnapshot(position).getReference();
Toast.makeText(getActivity(), ref.getId(), Toast.LENGTH_SHORT).show();
new ItemTouchHelper(new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.RIGHT | ItemTouchHelper.LEFT) {
@Override
public boolean onMove(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder, @NonNull RecyclerView.ViewHolder target) {
return false;
}
@Override
public void onSwiped(@NonNull RecyclerView.ViewHolder viewHolder, int direction) {
Toast.makeText(getActivity(), ref.getId(), Toast.LENGTH_SHORT).show();
}
}).attachToRecyclerView(twoRecyclerView);
}
});
}
使用提供的代码会发生这种情况:
当我单击 CardView 项目时,会弹出该项目的 Firestore 文档 ID 的 Toast 消息。但是,当我滑动该项目时,会弹出先前单击的第一个项目的 Toast 消息。所以如果我尝试在 onSwipe 方法中删除一个项目,我会不断删除第一个选择的项目。
我的问题是:如何在 onSwipe 中删除我想要的项目?
我的主要目标是能够在向右或向左滑动 CardView 项目时删除它们,而不必在单击该项目时删除。
【问题讨论】:
标签: java android android-recyclerview google-cloud-firestore