您的位置:首页 > 移动开发 > Android开发

Android RecyclerView (四)初学,实现长按删除一个Item.

2016-12-03 22:06 645 查看
在上一篇中,我学到了如何给RecyclerView添加Item监听器,在这里,我想做到类似于可以长按某个Item然后弹出一个菜单,选择删除这个Item的功能。这里的代码我们还是使用前面写的代码.

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和他的位置,就可以做到删除的功能了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐