Android RecyclerView (四)初学,实现长按删除一个Item.
2016-12-03 22:06
645 查看
在上一篇中,我学到了如何给RecyclerView添加Item监听器,在这里,我想做到类似于可以长按某个Item然后弹出一个菜单,选择删除这个Item的功能。这里的代码我们还是使用前面写的代码.
PopupMenu绑定一个menu然后进行显示。
首先,我们在MyAdapter中先写好删除Item的方法,
在menu文件夹下添加一个menu_item.xml的布局文件
这里我们只有一个item就是用于显示删除选项。
然后在我们的MainActivity中添加如下代码
在MainActivity中我们添加了一个方法,这个方法的作用就是show出来刚才我们设置的那个菜单布局,
在这里我们传入了一个View 和一个int pos整形的位置参数。
上篇文章中,我们设置Item监听器的时候有一个 LongClickListener的方法,就是来获取长按的点击事件。
然后在这里调用我们写好的这个方法,传入点击的View和他的位置,就可以做到删除的功能了。
PopupMenu绑定一个menu然后进行显示。
首先,我们在MyAdapter中先写好删除Item的方法,
public void removeItem(int pos){ infos.remove(pos); notifyItemRemoved(pos); }
我们这里传入一个位置,就是要删除的Item的位置.然后移除它就可以了。
在menu文件夹下添加一个menu_item.xml的布局文件
<?xml version="1.0" encoding="utf-8"?> <menu xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto"> <item android:id="@+id/removeItem" android:title="删除" app:showAsAction="never" ></item> </menu>
这里我们只有一个item就是用于显示删除选项。
然后在我们的MainActivity中添加如下代码
public void showPopMenu(View view,final int pos){ PopupMenu popupMenu = new PopupMenu(this,view); popupMenu.getMenuInflater().inflate(R.menu.item_menu,popupMenu.getMenu()); popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() { public boolean onMenuItemClick(MenuItem item) { myAdapter.removeItem(pos); return false; } }); popupMenu.setOnDismissListener(new PopupMenu.OnDismissListener() { @Override public void onDismiss(PopupMenu menu) { Toast.makeText(getApplicationContext(), "关闭PopupMenu", Toast.LENGTH_SHORT).show(); } }); popupMenu.show(); } }
在MainActivity中我们添加了一个方法,这个方法的作用就是show出来刚才我们设置的那个菜单布局,
在这里我们传入了一个View 和一个int pos整形的位置参数。
上篇文章中,我们设置Item监听器的时候有一个 LongClickListener的方法,就是来获取长按的点击事件。
myAdapter.setItemOnClickListener(new MyAdapter.OnItemOnClickLisener() { @Override public void onItemOnClickListener(View view, int pos) { Toast.makeText(MainActivity.this, "点击"+pos, Toast.LENGTH_SHORT).show(); } @Override public void onItemLongOnClickListener(View view, int pos) { showPopMenu(view,pos); } });
然后在这里调用我们写好的这个方法,传入点击的View和他的位置,就可以做到删除的功能了。
相关文章推荐
- Android中RecyclerView的item中控件的点击事件添加删除一行、上移下移一行的代码实现
- 再说Android RecyclerView局部刷新那个坑——RecyclerView中payload参数实现刷新一个item的局部
- Android使用CardView作为RecyclerView的Item并实现拖拽和左滑删除
- Android实现RecyclerView侧滑删除和长按拖拽-ItemTouchHelper
- Android实现RecyclerView侧滑删除和长按拖拽-ItemTouchHelper
- 利用RecyclerView实现的一个动画给变item的位置和左右滑动删除该RcyclervView的Item条目
- Android-RecyclerView实现Item添加和删除
- android中用RecyclerView实现滑动删除与切换item
- Android中RecyclerView的item中控件的点击事件添加删除一行、上移下移一行的代码实现
- Android实现RecyclerView侧滑删除和长按拖拽-ItemTouchHelper
- Android实现RecyclerView侧滑删除和长按拖拽-ItemTouchHelper
- android RecyclerView实现条目Item拖拽排序与滑动删除
- Android实现RecyclerView侧滑删除和长按拖拽-ItemTouchHelper
- Android中RecyclerView实现Item添加和删除的代码示例
- Android RecyclerView通用Adapter及item拖拽、滑动删除
- Android:RecyclerView视图,item之间分割线的极简单实现
- 【Android开源项目解析】RecyclerView侧滑删除粒子效果实现——初探Android开源粒子库 Leonids
- Android学习之ItemTouchHelper实现RecylerView的拖拽以及滑动删除功能
- ItemTouchHleper实现RecyclerView侧滑删除
- 使用ItemTouchHelper轻松实现RecyclerView拖拽排序和滑动删除