从RecyclerView中删除行

6 android android-5.0-lollipop android-recyclerview

我已经在这篇文章的帮助下以某种方式实现了回收视图,现在我的要求是在此回收视图中从运行时删除一行.

链接 - http://treyrobinson.net/blog/android-l-tutorials-part-3-recyclerview-and-cardview/

请帮我.

谢谢.

Ped*_*ira 12

由于我们不知道您的adaper如何以及在该链接中给出信息,您可以在适配器中创建一个删除对象的方法:

public void removeItem(int position) {
       mData.remove(position);
       notifyItemRemoved(position);
}
Run Code Online (Sandbox Code Playgroud)

您可以通过以下活动完成所有这些操作:

((MyRecyclerAdapter)myRecyclerView.getAdapter()).removeItem(position);
Run Code Online (Sandbox Code Playgroud)


war*_*ero 5

我能够让它像这样工作。

 ItemTouchHelper.SimpleCallback simpleItemTouchCallback = new ItemTouchHelper.SimpleCallback(0, ItemTouchHelper.LEFT | ItemTouchHelper.RIGHT) {
            @Override
            public void onSwiped(RecyclerView.ViewHolder viewHolder, int swipeDir) {
                //Remove swiped item from list and notify the RecyclerView
                datalist.remove(viewHolder.getAdapterPosition());
                // this line animates what happens after delete
                adapter.notifyItemRemoved(viewHolder.getAdapterPosition());
                Snackbar.make(recyclerView, "delete successful", Snackbar.LENGTH_LONG).show();
            }

            @Override
            public boolean onMove(RecyclerView recyclerView, RecyclerView.ViewHolder viewHolder, RecyclerView.ViewHolder target) {
                return false;
            }
        };
Run Code Online (Sandbox Code Playgroud)

并将上述内容设置为这样的回收站视图。

    ItemTouchHelper itemTouchHelper = new ItemTouchHelper(simpleItemTouchCallback);
itemTouchHelper.attachToRecyclerView(recyclerView);
Run Code Online (Sandbox Code Playgroud)