博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android ListView左滑删除、左滑自定义功能
阅读量:2383 次
发布时间:2019-05-10

本文共 5814 字,大约阅读时间需要 19 分钟。

最近项目需要ListView左滑删除功能,搜集了很多资料发现了一个某一前辈写的库能很简单的实现这个功能,而且有源码,直接拿来使用了。

库名字叫做SwipeMenuListView,下面给大家演示一下使用方法,不用谢。

首先在项目中加入库,这个不再介绍了。

布局文件:

复制代码

复制代码

 

数据适配器:

复制代码

/* * 采集器列表数据适配器 * @author guopeng * @created 2015年12月4日 */public class CollectorListAdapter extends BaseAdapter   {    private List
listItems;//数据集合 private LayoutInflater layoutinflater;//视图容器,用来导入布局 static class ViewHolder { private TextView serialNumber; private TextView articleNumber; private ImageView image; } /* * 实例化Adapter */ public CollectorListAdapter(Context context, List
dataSet) { this.listItems = dataSet; this.layoutinflater = LayoutInflater.from(context); } @Override public int getCount() { return listItems.size(); } @Override public Object getItem(int position) { return listItems.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { SystemDevice device = listItems.get(position); ViewHolder holder; View view; if(convertView == null) { holder= new ViewHolder(); //获取listitem布局文件 view = layoutinflater.inflate(R.layout.collectorlist_listitem, null); //获取控件对象 holder.serialNumber = (TextView) view.findViewById(R.id.collectorlist_serialnumber); holder.articleNumber = (TextView) view.findViewById(R.id.collectorlist_articlelnumber); holder.image = (ImageView) view.findViewById(R.id.collectorlist_image); view.setTag(holder); } else { view = convertView; holder = (ViewHolder) view.getTag(); } //设置图片和文字 holder.serialNumber.setText(String.valueOf(device.getSerialNumber())); holder.articleNumber.setText(String.valueOf(device.getArticleNumber())); return view; }}

复制代码

实现代码:

复制代码

private SwipeMenuListView listView;    //初始化ListView数据,在OnCreate方法中调用    private void initData()    {        final List
data = new SystemDeviceDao(context).queryAllSystemDevice(); final CollectorListAdapter adapter = new CollectorListAdapter(context, data); listView.setAdapter(adapter); listView.setEmptyView(activity.findViewById(R.id.collector_listview_empty)); // step 1. create a MenuCreator SwipeMenuCreator creator = new SwipeMenuCreator() { @Override public void create(SwipeMenu menu) { // create "open" item SwipeMenuItem openItem = new SwipeMenuItem(activity.getApplicationContext()); // set item background openItem.setBackground(new ColorDrawable(Color.rgb(0xC9, 0xC9, 0xCE))); // set item width openItem.setWidth(dp2px(90)); // set item title openItem.setTitle("打开"); // set item title fontsize openItem.setTitleSize(18); // set item title font color openItem.setTitleColor(Color.WHITE); // add to menu menu.addMenuItem(openItem); // create "delete" item SwipeMenuItem deleteItem = new SwipeMenuItem(activity.getApplicationContext()); // set item background deleteItem.setBackground(new ColorDrawable(Color.rgb(0xF9, 0x3F, 0x25))); // set item width deleteItem.setWidth(dp2px(90)); // set a icon deleteItem.setIcon(R.drawable.ic_delete); // add to menu menu.addMenuItem(deleteItem); } }; // set creator listView.setMenuCreator(creator); // step 2. listener item click event listView.setOnMenuItemClickListener(new OnMenuItemClickListener() { @Override public void onMenuItemClick(int position, SwipeMenu menu, int index) { SystemDevice device = data.get(position); switch (index) { case 0: // open open(device); break; case 1: // delete delete(device); data.remove(position); adapter.notifyDataSetChanged(); break; } } }); // set SwipeListener listView.setOnSwipeListener(new OnSwipeListener() { @Override public void onSwipeStart(int position) { // swipe start } @Override public void onSwipeEnd(int position) { // swipe end } }); listView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView
parent, View view, int position, long id) { SystemDevice device = data.get(position); open(device); } }); } private int dp2px(int dp) { return (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, dp, getResources().getDisplayMetrics()); } /** * 打开 * @param item */ private void open(SystemDevice item) { } /** * 删除 * @param item */ private void delete(SystemDevice item) { }

复制代码

效果:

 

 

 

可以自定义左滑功能,大家自己开发。

转载地址:http://vkdab.baihongyu.com/

你可能感兴趣的文章
查询表中两个条件下的数目,按三列组成表
查看>>
WinForm下禁止TextBox右键菜单
查看>>
C#_winform_DataGridView_的18种常见属性
查看>>
C# 扩展系统类string的方法
查看>>
webBrowser强制在本窗口打开,禁止在新窗口打开
查看>>
C#获取CPU序列号代码、硬盘ID、网卡硬件地址等类文件
查看>>
Html常用符号
查看>>
WinForm控制Webbrowser自动登录
查看>>
access表(.mdb文件) 导入 power designer
查看>>
PowerDesigner如何设计表之间的关联
查看>>
SQLite通用数据库类
查看>>
CMD下修改IP地址!
查看>>
安卓手机可以连上wifi但无法上网的解决办法
查看>>
C++程序员常用工具集
查看>>
在CSDN博客中添加量子恒道统计功能的做法
查看>>
C++调用IDL程序的做法(一)
查看>>
外部修改应用程序图标的做法
查看>>
database disk image is malformed解决方法
查看>>
有关error PRJ0003错误的思考
查看>>
实现自定义对话框程序快捷键的两种方法
查看>>