我自己一个人弄的公司的产品客户端,所以还是想记录下来以免忘记或者丢失...

在我的上一篇博文(点击打开链接)是一个文件管理的东西,基础组件也是ListView所以在此只是改动一下而已。

单击:

点击出现按钮比较简单只需要替换上文中file_row.xml的checkbox为button就可以,然后自己实现onclicklistener就行了,唯一要注意的就是要在xml文件中的button的android:clickable属性设置为true就可以了。

滑动:

滑动来说也相对比较简单需要在上文种FileAdapter.java类中getView方法里的convertView参数对象设置ontouchlistener就可以了,具体看代码:

  1. @Override
  2. public View getView(int position,View convertView,ViewGroup parent){
  3. ViewHolder holder;
  4. if(convertView == null){
  5. convertView = mInflater.inflate(R.layout.filemanage, null);
  6. convertView.setOnTouchListener(new OnTouchListener(){
  7. @Override
  8. public boolean onTouch(View v, MotionEvent event) {
  9. switch(event.getAction())//根据动作来执行代码
  10. {
  11. case MotionEvent.ACTION_MOVE://滑动
  12. Toast.makeText(context, "move...", Toast.LENGTH_SHORT).show();
  13. break;
  14. case MotionEvent.ACTION_DOWN://按下
  15. Toast.makeText(context, "down...", Toast.LENGTH_SHORT).show();
  16. DownX = event.getX();
  17. break;
  18. case MotionEvent.ACTION_UP://松开
  19. UpX = event.getX();
  20. Toast.makeText(context, "up..." + Math.abs(UpX-DownX), Toast.LENGTH_SHORT).show();
  21. if(Math.abs(UpX-DownX) > 20){
  22. ViewHolder holder = (ViewHolder) v.getTag();
  23. holder.cBox.setVisibility(View.VISIBLE);
  24. }
  25. break;
  26. default:
  27. }
  28. return true;
  29. }
  30. });
  31. holder = new ViewHolder();
  32. VHs.add(holder);
  33. holder.text = (TextView) convertView.findViewById(R.id.filetext);
  34. holder.text.setTextColor(context.getResources().getColor(R.color.text_color));
  35. holder.icon = (ImageView) convertView.findViewById(R.id.fileicon);
  36. holder.cBox = (Button) convertView.findViewById(R.id.delete_btn);
  37. holder.cBox.setOnClickListener(new OnClickListener(){
  38. public void onClick(View v) {
  39. Toast.makeText(context, "btn click...", Toast.LENGTH_SHORT).show();
  40. }
  41. });
  42. convertView.setTag(holder);
  43. }else{
  44. holder = (ViewHolder) convertView.getTag();
  45. }
  46. File f=new File(paths.get(position).toString());
  47. if(items.get(position).toString().equals("goroot")){
  48. holder.text.setText("返回根目录");
  49. holder.icon.setImageBitmap(mIcon1);
  50. holder.cBox.setVisibility(isVisibility.get(position));
  51. }else if(items.get(position).toString().equals("goparent")){
  52. holder.text.setText("返回上一级");
  53. holder.icon.setImageBitmap(mIcon2);
  54. holder.cBox.setVisibility(isVisibility.get(position));
  55. }else{
  56. holder.text.setText(f.getName());
  57. if(f.isDirectory()){
  58. holder.icon.setImageBitmap(mIcon3);
  59. holder.cBox.setVisibility(isVisibility.get(position));
  60. }else{
  61. holder.icon.setImageBitmap(mIcon4);
  62. holder.cBox.setVisibility(isVisibility.get(position));
  63. }
  64. }
  65. return convertView;
  66. }

滑动多少距离产生效果自己计算,不过我给的20好像少了点。

///发现listitem 不响应onItemClick;只能在up事件后调用;这是我修改后的代码:
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction())// 根据动作来执行代码
{
case MotionEvent.ACTION_MOVE:// 滑动
break;
case MotionEvent.ACTION_DOWN:// 按下
v.setPressed(true);//item的点击效果
downX = event.getX();
break;
case MotionEvent.ACTION_UP:// 松开
v.setPressed(false);//item的点击效果
upX = event.getX();
if (Math.abs(upX - downX) > 50) {
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 ListView实现单击item出现删除按钮以及滑动出现删除按钮的更多相关文章

  1. Android ListView实现不同item的方法和原理分析

    ListView实现不同item的方法和原理分析 一问题抛出Listview是android里面的重要组件,用来显示一个竖向列表,这个没有什么问题:但是有个时候列表里面的item不是一样的,如下图,列 ...

  2. android ListView点击item返回后listview滚动位置

    1.Don't work when dynamically loading content Parcelable state; @Override public void onPause() { // ...

  3. android ListView中的Item有Button时候点击异常处理

    1.当ListView中有Button的时候往往会遇到很多问题,比较常见的一个问题是: 假设:在ListView中有N个Item当点击其中某个Item中的Button的时候,需要改变当前Button的 ...

  4. Android ListView动态改变Item高度

    在adapter的getView方法中进行设置,代码如下 @Override public View getView(int position, View convertView, ViewGroup ...

  5. Android处理ListView中的Item中的Button按钮不能点击的问题

    问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...

  6. Android ListView item 点击事件失效问题的解决

    关于ListView点击无效,item无法相应点击事件的问题,网上有很多, 大致可分为俩种情况, 一种是 item中存在 ImageButton 等可以点击的组件,这会抢先获得ListView的焦点. ...

  7. mono for android Listview 里面按钮 view Button click 注册方法 并且传值给其他Activity 主要是context

    需求:为Listview的Item里面的按钮Button添加一个事件,单击按钮时通过事件传值并跳转到新的页面. 环境:mono 效果: 布局代码 主布局 <?xml version=" ...

  8. Android ListView的批量处理(多选/反选/删除)

    在Android开发中经常遇到使用ListView的情况,有时候需要的不仅仅是列表显示,还有长按列表进行多选,并且批量删除的情况,在这里记录一下自己的所学. 先上效果图: 几个需要用到的核心方法: / ...

  9. Android ListView嵌套Button,Button事件覆盖item事件解决办法

    方法就是修改item布局的xml文件: 在根布局里加上: android:descendantFocusability="blocksDescendants" 然后在按钮布局里加上 ...

随机推荐

  1. java 字符串格式化

    转:http://blog.sina.com.cn/s/blog_af26e3330101988v.html 1.对整数进行格式化:%[index$][标识][最小宽度]转换方式 我们可以看到,格式化 ...

  2. Java 虚拟机:互斥同步、锁优化及synchronized和volatile

    互斥同步 互斥同步(Mutual Exclusion & Synchronization)是常见的一种并发正确性保证手段.同步是指子啊多个线程并发访问共享数据时,保证共享数据在同一时刻只能被一 ...

  3. C++对象模型-构造函数语意学

    关于C++,最常听到的一个抱怨就是:编译器背着程序员干了太多的事情. default constructor函数的构建 default constructors会在需要的时候被编译器创建出来,关键字是 ...

  4. Linux 关于Transparent Hugepages的介绍【转】

    透明大页介绍 Transparent Huge Pages的一些官方介绍资料: Transparent Huge Pages (THP) are enabled by default in RHEL ...

  5. 使用 "java -jar"命令启动jar包时报不支持的jdk版本异常

    在使用java -jar 命令启动一个jar包的时候,提示版本不支持: [root@hadoop01 eureka-server-master]# java -jar xuebusi-eureka-s ...

  6. R语言统计分析应用与SAS、SPSS的比较

    能够用来做统计分析的软件和程序很多,目前应用比较广泛的包括:SPSS, SAS.R语言,Matlab,S-PLUS,S-Miner等.下面我们来看一下各应用的特点: SPSS: 最简单的,都是菜单操作 ...

  7. 解析Delphi 窗口置顶,及非主窗口置顶

    方法一: procedure TForm1.Button2Click(Sender: TObject);begin Form2.Show; Application.NormalizeTopMosts; ...

  8. Eclipse C++的配置问题launch failed binary not found

    首先下载eclipse c++ 我的是64bit版本 安装好MinGW,并配置好环境变量,参考我的博客 http://www.cnblogs.com/fickleness/p/3273044.html ...

  9. corntab被黑记录

    多出来的corntab 最近服务器经常出现负载过高的情况,经过运维排查,出现了一个corntab定时任务 不是开发的锅,别背 一开始运维认为是这个定时任务是我们开发的. 排查后,明确了服务器是被黑了. ...

  10. 【Java笔记】配置文件java.util.Properties类的使用

    配置文件的路径:项目名/src/main/resources/mmall.properties mmall.properties的内容是键值对.例如假设写了ftp服务器的一些信息. ftp.serve ...