Android 刷卡删除回收器视图立即刷卡时删除项目
我已经使用new ItemTouchHelper.SimpleCallback编写了刷卡删除回收器视图 我的问题是,当我滑动项目时,会出现一个对话框,当我说“是”时,只会从“回收器”视图中删除该视图。但现在,视图在对话框出现之前被删除。这里有我遗漏的东西吗Android 刷卡删除回收器视图立即刷卡时删除项目,android,android-recyclerview,Android,Android Recyclerview,我已经使用new ItemTouchHelper.SimpleCallback编写了刷卡删除回收器视图 我的问题是,当我滑动项目时,会出现一个对话框,当我说“是”时,只会从“回收器”视图中删除该视图。但现在,视图在对话框出现之前被删除。这里有我遗漏的东西吗 public class SwipeToDeleteRecyclerView extends RecyclerView { private static final String TAG = SwipeToDeleteRec
public class SwipeToDeleteRecyclerView extends RecyclerView {
private static final String TAG = SwipeToDeleteRecyclerView.class.getSimpleName();
private OnSwipeListener onSwipeListener;
public SwipeToDeleteRecyclerView(Context context) {
super(context);
init();
}
public SwipeToDeleteRecyclerView(Context context, AttributeSet attrs) {
super(context, attrs);
init();
}
public SwipeToDeleteRecyclerView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
init();
}
private void init() {
SwipeSimpleCallback swipeCallback = new SwipeSimpleCallback();
ItemTouchHelper itemTouchHelper = new ItemTouchHelper(swipeCallback);
itemTouchHelper.attachToRecyclerView(this);
}
public void setOnSwipeListener(OnSwipeListener onSwipeListener) {
this.onSwipeListener = onSwipeListener;
}
public OnSwipeListener getSwipeListener() {
return onSwipeListener;
}
private class SwipeSimpleCallback extends ItemTouchHelper.SimpleCallback {
private final String TAG = SwipeSimpleCallback.class.getSimpleName();
public SwipeSimpleCallback() {
this(0, ItemTouchHelper.LEFT);
}
SwipeSimpleCallback(int dragDirs, int swipeDirs) {
super(dragDirs, swipeDirs);
}
@Override
public boolean onMove(RecyclerView recyclerView, ViewHolder viewHolder, ViewHolder target) {
return true;
}
@Override
public void onSwiped(ViewHolder viewHolder, int direction) {
if (onSwipeListener != null) {
onSwipeListener.onSwipe(viewHolder, direction);
} else {
LogUtil.warn(TAG, "No Swipe listener attached to " + SwipeToDeleteRecyclerView.class.getSimpleName());
}
}
}
}
这就是我设置回调的方式
recyclerView.setOnSwipeListener(new OnSwipeListener() {
@Override
public void onSwipe(RecyclerView.ViewHolder viewHolder, int swipeDirection) {
position = viewHolder.getAdapterPosition();
showConfirmDialog();
}
});
尝试在onsweep()上设置对话框 例:
}您有解决此问题的方法吗?我也需要实现这一点,但我面临着同样的问题。
public void onSwiped(final RecyclerView.ViewHolder viewHolder, int swipeDir) {
final int position = viewHolder.getAdapterPosition();
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(MainActivity.this);
alertDialogBuilder.setMessage("Are you sure that you want to remove it?");
alertDialogBuilder.setPositiveButton("remove", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface arg0, int arg1) {
recyclerView.getAdapter().notifyItemRemoved(position);
}
});
alertDialogBuilder.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
clearView(recyclerView, viewHolder);
}
});
AlertDialog alertDialog = alertDialogBuilder.create();
alertDialog.show();