Android中的刷卡查看撤消卡项目

Android中的刷卡查看撤消卡项目,android,Android,我需要一些帮助。我在安卓系统中使用类似Tinder应用程序的刷卡库,我使用交叉按钮移除卡,现在我还需要单击返回选项的撤消选项。有人能告诉我用什么方法吗?我真的很感激。 谢谢 我假设您已经实现了一个ÌtemTouchHelper.SimpleCallback接口来控制刷卡。我在下面提供了一个此类实施的示例: ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, I

我需要一些帮助。我在安卓系统中使用类似Tinder应用程序的刷卡库,我使用交叉按钮移除卡,现在我还需要单击返回选项的撤消选项。有人能告诉我用什么方法吗?我真的很感激。
谢谢

我假设您已经实现了一个
ÌtemTouchHelper.SimpleCallback
接口来控制刷卡。我在下面提供了一个此类实施的示例:

ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {

            @Override
            public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {

                final int adapterPosition = viewHolder.getAdapterPosition();
                final Task taskItem = tasks.remove(adapterPosition); //tasks is an ArrayList of data that populates the RecyclerView. This line deletes an element from the ArrayList, but at the same time saves it in a variable.
                adapter.notifyItemRemoved(viewHolder.getAdapterPosition()); //adapter represents my adapter class.

                Snackbar snackbar = Snackbar    //assuming that a Snackbar with "UNDO" button is what you want. 
                        .make(rvTasks, "Item removed", Snackbar.LENGTH_LONG)
                        .setAction("Undo", new View.OnClickListener() {
                            @Override
                            public void onClick(View view) {
                                //this happens when "Undo" is clicked. 
                                tasks.add(adapterPosition, taskItem);
                                adapter.notifyItemInserted(adapterPosition);
                                rvTasks.scrollToPosition(adapterPosition);
                            }
                        });
                snackbar.show();
            }

            @Override
            public void onMoved(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, int fromPos, RecyclerView.ViewHolder target, int toPos, int x, int y) {
                super.onMoved(recyclerView, viewHolder, fromPos, target, toPos, x, y);
            }

            @Override
            public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
                return false;
            }
        };

        ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
        itemTouchHelper.attachToRecyclerView(rvTasks);
顺序:

final int adapterPosition = viewHolder.getAdapterPosition(); 
//saves the position of card/item in case we want to reinstate it.
final Task taskItem = tasks.remove(adapterPosition); 
//deletes an element from the ArrayList, but at the same time saves it in a variable.
adapter.notifyItemRemoved(viewHolder.getAdapterPosition()); 
//adapter is notified that item is removed and thus removed from view.
那么


我前段时间写了一个库,已经实现了这个功能,希望对大家有所帮助

这取决于您的实施。如果您提供一些代码,就更容易给出建议。我最近在我的应用程序中实现了这样一个功能,所以我将很快给出答案。
Snackbar.make(... details omitted ...) //remember to add in your build.gradle: compile 'com.android.support:design:25.3.1'
tasks.add(adapterPosition, taskItem); //deleted element readded to ArrayList
adapter.notifyItemInserted(adapterPosition); //adapter notified of reinstated item
rvTasks.scrollToPosition(adapterPosition); //auto-scrolls to position where item is reinstated