Android 关于ListView中按钮监听的优化问题(方法二)
关于ListView中按钮监听的优化问题(方法一)地址:
http://www.cnblogs.com/steffen/p/3951901.html
之前的方法一,虽然能够解决position的传递,但是我们一般在监听事件中会经常用到Context和存储数据的集合ArrayList,若每次都要将这么多的数据传递给Button的话,那个Button的数据量必然会增大。
因此,参考方法一我们可以将Button的监听事件写成Adapter的内部中,方便我们调用Adapter中的所有数据。废话不多说,直接上代码:
1 // ... 2 3 private ButtonClickListener btnClickListener ; 4 5 public ItemAdapter(Context c, ArrayList<Map<String, Object>> appList, int resource, String[] from, int[] to) { 6 super(c, appList, resource, from, to); 7 btnClickListener = new ButtonClickListener(); 8 } 9 10 @Override 11 public View getView(int position, View converView, ViewGroup parentView) { 12 Handler handler = null; 13 View view = convertView; 14 if(convertView == null) { 15 view = LayoutInflater.from(activity).inflate(R.layout.item_list, null); 16 handler= new Handler(); 17 handler.button = view.findViewById(R.id.item_list_btn);18 handler.button.setOnclickListener(btnClickListener); 19 view.setTag(handler); 20 } else { 21 handler = (Handler) view.getTag(); 22 } 23 // ... 24 handler.button.setTag(position); 25 return view; 26 } 27 28 private class ButtonClickListener implements View.OnClickListener { 29 @Override 30 public void onClick(View arg0) { 31 int position = (Integer) ((Button) arg0).getTag(); 32 // ... 33 } 34 } 35 36 private class Handler { 37 Button btn; 38 }
转载于:https://www.cnblogs.com/steffen/p/3952090.html
Android 关于ListView中按钮监听的优化问题(方法二)相关推荐
- Javascript中关于监听DOM元素状态的方法使用
Javascript中关于监听DOM元素状态的方法使用 MutationObserver MutationObserver是针对DOM元素的观察器,观察它体内增加/减少子(爷孙)节点,或者子节点的属性 ...
- Android屏幕触摸监听,Android在Fragment中实现监听触摸事件
本文给大家介绍的是监听Fragment的触摸事件实现.如果大家有更好的机制,可以留言交流,下面来看看详细的介绍: 大家都知道,我们的activity中有onTouchEvent方法,可以用来实现触摸事 ...
- Android 自定义 View 中 onKeyDown监听 没反应
刚刚学到View,不想看书了,自己动手一些简单的操作,才开始画图就出来问题了,居然按照方法来,监听事情不行了,明明添加 了监听 在网上找了些资料终于明白了: 原来是焦点问题,我们注意View中有监听事 ...
- Android USB摄像头插拔监听
Android USB摄像头插拔监听 一.简要介绍 二.使用广播监听USB摄像头插拔情况 1.注册监听USB设备插拔广播 2.判断UsbDevice是否是Camera设备 (重点) 二.通过UsbMa ...
- android listview ontouchlistener,Android ListView监听滑动事件的方法(详解)
ListView的主要有两种滑动事件监听方法,OnTouchListener和OnScrollListener 1.OnTouchListener OnTouchListener方法来自View中的监 ...
- Android耳机线控详解,蓝牙耳机按钮监听(仿酷狗线控效果)
转载请注明出处:http://blog.csdn.net/fengyuzhengfan/article/details/46461253 当耳机的媒体按键被单击后,Android系统会发出一个广播,该 ...
- java 多个监听_Java中使用for循环对多个Jbutton按钮监听
Java中Jbutton按钮监听,当多个按钮做的事差不多的时候是可以用for循环的(比如计算器1-9)省事省力. 监听时变量只能是final或者static,不过这些在for循环中明显不行,所以,就在 ...
- android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键
本文将带你了解Android应用开发之react-native 监听Android物理返回键,希望本文对大家学Android有所帮助. 1. componentWillMount(){ ...
- Java中事件监听机制
Java中事件监听机制 一.事件监听机制的定义 要想了解Java中的事件监听机制,首先就要去了解一下在Java中事件是怎样去定义的呢!在使用Java编写好一个界面后,我们就会对界面进行一些操作,比如, ...
最新文章
- 中tile函数_HelpGirlFriend 系列 --- tensorflow 中的张量运算思想
- 倪海厦天纪笔记16_倪海厦老师讲解天纪易经——第3集(13)
- go语言笔记——defer作用DB资源等free或实现调试
- JavaScript实现heapsort堆排序算法(附完整源码)
- Neo4j简单的样例
- LeetCode 2192. 有向无环图中一个节点的所有祖先(拓扑排序)
- 2020年中国工业品B2B行业研究报告
- sqlmap 用户手册(续)
- Oracle学习总结(9)—— Oracle 常用的基本操作
- Linux基本操作(6)——Linux 重写rm 命令 实现回收站功能
- Android Studio没有看到设备
- windows10系统电脑点击睡眠没反应怎么办?
- thinkphp 3.2视图里添加URL参数 实例
- Android 开发错误集锦
- vi 打开文件,行末尾有^M
- java考试时间,Java认证考试知识点:Java时间类的函数
- vivado 2017 安装教程
- java8 numberformat,NumberFormat舍入问题仅限Java 8
- 关于微信小程序,input框的值无法输入到e.detail.value
- python 处理英文步骤
热门文章
- 2、python机器学习基础教程——K近邻算法鸢尾花分类
- Docker+Jenkins+Gitlab+Django应用部署实践
- linux基础命令篇一
- 【跃迁之路】【440天】刻意练习系列199(2018.04.21)
- window.open与window.location.href
- JavaScript 原型中的哲学思想
- EJBCA 6 通过调用WebService接口增加用户并获取证书
- 为数据中心度身定制智能基础设施管理系统
- YII CRUD 例子
- java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12问题