Android优化Adapter内的Click、LongClick
来源:互联网 发布:工程网络计划图 编辑:程序博客网 时间:2024/06/04 23:21
通过对convertView设置tag,来保存当前点击的pos
为解决点击item无法获取当前的pos,同时长按点击和点击两个动作,无法再adapter里很好的区分,设计OnConvertViewClickListener继承View.OnClickListener,对convertView和pos保存,pos保存在convertView的tag内,getTag后,回调clickCallback响应点击
public abstract class OnConvertViewClickListener implements View.OnClickListener { private View convertView; private int[] positionIds; public OnConvertViewClickListener(View convertView, int... positionIds) { this.convertView = convertView; this.positionIds = positionIds; } @TargetApi(Build.VERSION_CODES.DONUT) @Override public void onClick(View v) { int len = positionIds.length; int[] positions = new int[len]; for (int i = 0; i < len; i++) { positions[i] = (int) convertView.getTag(positionIds[i]); } onClickCallBack(v, positions); } public abstract void onClickCallBack(View registedView, int... positionIds);}
同理对longClick也做相同的设置:
public abstract class OnConvertViewLongClickListener implements View.OnLongClickListener { private View convertView; private int[] positionIds; public OnConvertViewLongClickListener(View convertView, int... positionIds) { this.convertView = convertView; this.positionIds = positionIds; } @Override public boolean onLongClick(View v) { int len = positionIds.length; int[] positions = new int[len]; for (int i = 0; i < len; i++) { positions[i] = (int) convertView.getTag(positionIds[i]); } onLongClickCallBack(v, positions); return false; } public abstract void onLongClickCallBack(View registedView, int... positionIds);}
之后再adapter,调用view.setOnClickListener(new OnConvertViewClickListener(convertView, POSITION) ,其中POSITION是常量,用来保存tag的标识,(注意在getView初始化setTag(POSITION, position),这样才能正确的获取点击pos)
0 0
- Android优化Adapter内的Click、LongClick
- android listview 同时监听click和longclick
- Android:Click,LongClick,Touch,KeyDown,KeyUp事件使用心得
- View的Click,LongClick,Touch事件的研究
- 为RecyclerView精确的添加Click及LongClick事件
- android子view点击事件(click)和父view长点击事件(longclick)冲突
- android对adapter的优化
- Android 中 的adapter优化问题
- android 中 touchEvent 转变为 longClick
- Android Adapter(适配器)优化
- Android Adapter优化
- Android之Adapter优化
- Android之Adapter优化
- Android之Adapter优化
- Android Adapter优化问题
- Android adapter优化方案
- 7.如何给RecyclerView添加Click和LongClick事件
- Android开发优化-Adapter优化
- iOS 设置导航条的主题
- jasoncpp在visual studio下的编译和使用
- Android Interface Definition Language (AIDL)
- 【Bugly干货分享】iOS内存管理:从MRC到ARC实践
- Servlet过滤器和监听器知识总结
- Android优化Adapter内的Click、LongClick
- MySQL常用命令
- Retrofit 2.0 + OkHttp 3.0 配置
- 第一章 引言
- 图片选择器
- 发送微信模板消息
- find the nth digit
- CleanMyMac 3偏好设置
- 我的 Android 开发实战经验总结