位置: 编程技术 - 正文
推荐整理分享Android ListViewitem滑动出现删除按钮,希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!
我自己一个人弄的公司的产品客户端,所以还是想记录下来以免忘记或者丢失...
在我的上一篇博文(点击打开链接)是一个文件管理的东西,基础组件也是ListView所以在此只是改动一下而已。
单击:
点击出现按钮比较简单只需要替换上文中file_row.xml的checkbox为button就可以,然后自己实现onclicklistener就行了,唯一要注意的就是要在xml文件中的button的android:clickable属性设置为true就可以了。
滑动:
滑动来说也相对比较简单需要在上文种FileAdapter.java类中getView方法里的convertView参数对象设置ontouchlistener就可以了,具体看代码:
[java] view plaincopy @Override public View getView(int position,View convertView,ViewGroup parent){ ViewHolder holder; if(convertView == null){ convertView = mInflater.inflate(R.layout.filemanage, null); convertView.setOnTouchListener(new OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent event) { switch(event.getAction())//根据动作来执行代码 { case MotionEvent. Toast.makeText(context, "move...", Toast.LENGTH_SHORT).show(); break; case MotionEvent. Toast.makeText(context, "down...", Toast.LENGTH_SHORT).show(); DownX = event.getX(); break; case MotionEvent. UpX = event.getX(); Toast.makeText(context, "up..." Math.abs(UpX-DownX), Toast.LENGTH_SHORT).show(); if(Math.abs(UpX-DownX) > ){ ViewHolder holder = (ViewHolder) v.getTag(); holder.cBox.setVisibility(View.VISIBLE); } break; default: } return true; } }); holder = new ViewHolder(); VHs.add(holder); holder.text = (TextView) convertView.findViewById(R.id.filetext); holder.text.setTextColor(context.getResources().getColor(R.color.text_color)); holder.icon = (ImageView) convertView.findViewById(R.id.fileicon); holder.cBox = (Button) convertView.findViewById(R.id.delete_btn); holder.cBox.setOnClickListener(new OnClickListener(){ public void onClick(View v) { Toast.makeText(context, "btn click...", Toast.LENGTH_SHORT).show(); } }); convertView.setTag(holder); }else{ holder = (ViewHolder) convertView.getTag(); } File f=new File(paths.get(position).toString()); if(items.get(position).toString().equals("goroot")){ holder.text.setText("返回根目录"); holder.icon.setImageBitmap(mIcon1); holder.cBox.setVisibility(isVisibility.get(position)); }else if(items.get(position).toString().equals("goparent")){ holder.text.setText("返回上一级"); holder.icon.setImageBitmap(mIcon2); holder.cBox.setVisibility(isVisibility.get(position)); }else{ holder.text.setText(f.getName()); if(f.isDirectory()){ holder.icon.setImageBitmap(mIcon3); holder.cBox.setVisibility(isVisibility.get(position)); }else{ holder.icon.setImageBitmap(mIcon4); holder.cBox.setVisibility(isVisibility.get(position)); } } return convertView; }
滑动多少距离产生效果自己计算,不过我给的好像少了点。
///发现listitem 不响应onItemClick;只能在up事件后调用;这是我修改后的代码:public boolean onTouch(View v, MotionEvent event) {switch (event.getAction())// 根据动作来执行代码{case MotionEvent. 滑动break;case MotionEvent. 按下v.setPressed(true);//item的点击效果downX = event.getX();break;case MotionEvent. 松开v.setPressed(false);//item的点击效果upX = event.getX();if (Math.abs(upX - downX) > ) {Button bt_delete = (Button) v.findViewById(R.id.delete);bt_delete.setVisibility(View.VISIBLE);return true;}//调用onItemClick接口的实现listView.performItemClick(v, pos, listView.getItemIdAtPosition(pos));return false;default:break;}return true;}
Android 4.1.2为通知栏添加wifi开关 摘自:
Android 4.4 eng版本 红框问题 在android4.4.2中编译的eng版本经常出现红框的问题。通过排查因为在frameworks/base/core/java/android/os/StrictMode.java文件中打开了设置选项具体修改如下:---a/frame
Activity与Fragment数据传递之Fragment从Activity获取数据 整理Fragment与Activity之间的数据交换,大体上包括三种:1、Fragment从Activity获取数据2、Activity从Fragment获取数据3、Fragment之间获取数据通常,如果Activity向
标签: Android ListViewitem滑动出现删除按钮
本文链接地址:https://www.jiuchutong.com/biancheng/379576.html 转载请保留说明!上一篇:Android设计模式之单例模式 Singleton(android设计模式的应用场景)
下一篇:Android 4.1.2为通知栏添加wifi开关(安卓hid通信)
友情链接: 武汉网站建设