Android ListView实现单击item出现删除按钮以及滑动出现删除按钮
我自己一个人弄的公司的产品客户端,所以还是想记录下来以免忘记或者丢失...
在我的上一篇博文(点击打开链接)是一个文件管理的东西,基础组件也是ListView所以在此只是改动一下而已。
单击:
点击出现按钮比较简单只需要替换上文中file_row.xml的checkbox为button就可以,然后自己实现onclicklistener就行了,唯一要注意的就是要在xml文件中的button的android:clickable属性设置为true就可以了。
滑动:
滑动来说也相对比较简单需要在上文种FileAdapter.java类中getView方法里的convertView参数对象设置ontouchlistener就可以了,具体看代码:
- @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.ACTION_MOVE://滑动
- Toast.makeText(context, "move...", Toast.LENGTH_SHORT).show();
- break;
- case MotionEvent.ACTION_DOWN://按下
- Toast.makeText(context, "down...", Toast.LENGTH_SHORT).show();
- DownX = event.getX();
- break;
- case MotionEvent.ACTION_UP://松开
- UpX = event.getX();
- Toast.makeText(context, "up..." + Math.abs(UpX-DownX), Toast.LENGTH_SHORT).show();
- if(Math.abs(UpX-DownX) > 20){
- 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;
- }
滑动多少距离产生效果自己计算,不过我给的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出现删除按钮以及滑动出现删除按钮的更多相关文章
- Android ListView实现不同item的方法和原理分析
ListView实现不同item的方法和原理分析 一问题抛出Listview是android里面的重要组件,用来显示一个竖向列表,这个没有什么问题:但是有个时候列表里面的item不是一样的,如下图,列 ...
- android ListView点击item返回后listview滚动位置
1.Don't work when dynamically loading content Parcelable state; @Override public void onPause() { // ...
- android ListView中的Item有Button时候点击异常处理
1.当ListView中有Button的时候往往会遇到很多问题,比较常见的一个问题是: 假设:在ListView中有N个Item当点击其中某个Item中的Button的时候,需要改变当前Button的 ...
- Android ListView动态改变Item高度
在adapter的getView方法中进行设置,代码如下 @Override public View getView(int position, View convertView, ViewGroup ...
- Android处理ListView中的Item中的Button按钮不能点击的问题
问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...
- Android ListView item 点击事件失效问题的解决
关于ListView点击无效,item无法相应点击事件的问题,网上有很多, 大致可分为俩种情况, 一种是 item中存在 ImageButton 等可以点击的组件,这会抢先获得ListView的焦点. ...
- mono for android Listview 里面按钮 view Button click 注册方法 并且传值给其他Activity 主要是context
需求:为Listview的Item里面的按钮Button添加一个事件,单击按钮时通过事件传值并跳转到新的页面. 环境:mono 效果: 布局代码 主布局 <?xml version=" ...
- Android ListView的批量处理(多选/反选/删除)
在Android开发中经常遇到使用ListView的情况,有时候需要的不仅仅是列表显示,还有长按列表进行多选,并且批量删除的情况,在这里记录一下自己的所学. 先上效果图: 几个需要用到的核心方法: / ...
- Android ListView嵌套Button,Button事件覆盖item事件解决办法
方法就是修改item布局的xml文件: 在根布局里加上: android:descendantFocusability="blocksDescendants" 然后在按钮布局里加上 ...
随机推荐
- 服务器有无中木马前期诊断 注意:wget最好是从服务器上卸载掉,因为多数情况是wget下载木马到服务器的
# rpm -qf /usr/bin/wget wget-.el6_6..x86_64 rpm -e --nodeps wget 有无下列文件: cat /etc/rc.d/init.d/selinu ...
- Word实用教程——五分钟教你如何在任意页开始添加页码
最近在写一篇论文,但是在排版上遇到一点小问题,就是要加入页码,而且页码是从目录的下一页开始计数,于是我就在网上找如何在任意页添加页码.后来辗转终于搞定,真心觉得这一个小功能让微软做的如此的麻烦,真是活 ...
- PLSA及EM算法
前言:本文主要介绍PLSA及EM算法,首先给出LSA(隐性语义分析)的早期方法SVD,然后引入基于概率的PLSA模型,其参数学习采用EM算法.接着我们分析如何运用EM算法估计一个简单的mixture ...
- HBase操作(Shell与Java API)
版权声明:本文为博主原创文章,未经博主允许不得转载. 转: http://blog.csdn.net/u013980127/article/details/52443155 下面代码在Hado ...
- 对JSON格式的城市按照拼音首字母排序
需求说明: App应用中最常见的一种操作就是对城市按照拼音首字母排序,以方便选择城市.而已有的json格式的城市数据是没有这种排序的. 已有的json格式的城市数据格式如下[简化之后]: 数据格式说明 ...
- 比较正确的 iPhone7/7+ 的进入DFU的方法是这样的
正确的.没有歧义的.在WIndows7系统下进入DFU并刷机的方法是: 1)PC端打开iTunes,数据线连接iPhone7与PC: 2)iPhone7关机: 3)同时按下电源键和音量减键,LOGO会 ...
- 有用的SAP System Administration T-CODE
一,SAP系统管理常用到的事务代码1. SM51 SAP Servers System Monitoring2. SM21 SAP系统日志3. SRZL SAP计算机中心管理系统(CCMS) ...
- js实现文本框文本域光标处插入图片文本的插件(并且光标在插入内容的内容后显示)
js: /******************************************* * * 插入光标处的插件 * @authors Du xin li * @update 2015 ...
- Python(八)之函数
Python函数 函数作用: (1)代码重用 (2)一种设计工具,分解复杂问题 (3)将相关功能打包并参数化 函数种类: 全局函数:定义在模块中 局部函数:嵌套在其他函数中 lambda函数:表达式 ...
- CentOS7下查询硬件信息
原文:https://blog.csdn.net/pwb1994001/article/details/80896267 因为个人需要,整理的 参考:https://blog.csdn.net/dre ...