关于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中按钮监听的优化问题(方法二)相关推荐

  1. Javascript中关于监听DOM元素状态的方法使用

    Javascript中关于监听DOM元素状态的方法使用 MutationObserver MutationObserver是针对DOM元素的观察器,观察它体内增加/减少子(爷孙)节点,或者子节点的属性 ...

  2. Android屏幕触摸监听,Android在Fragment中实现监听触摸事件

    本文给大家介绍的是监听Fragment的触摸事件实现.如果大家有更好的机制,可以留言交流,下面来看看详细的介绍: 大家都知道,我们的activity中有onTouchEvent方法,可以用来实现触摸事 ...

  3. Android 自定义 View 中 onKeyDown监听 没反应

    刚刚学到View,不想看书了,自己动手一些简单的操作,才开始画图就出来问题了,居然按照方法来,监听事情不行了,明明添加 了监听 在网上找了些资料终于明白了: 原来是焦点问题,我们注意View中有监听事 ...

  4. Android USB摄像头插拔监听

    Android USB摄像头插拔监听 一.简要介绍 二.使用广播监听USB摄像头插拔情况 1.注册监听USB设备插拔广播 2.判断UsbDevice是否是Camera设备 (重点) 二.通过UsbMa ...

  5. android listview ontouchlistener,Android ListView监听滑动事件的方法(详解)

    ListView的主要有两种滑动事件监听方法,OnTouchListener和OnScrollListener 1.OnTouchListener OnTouchListener方法来自View中的监 ...

  6. Android耳机线控详解,蓝牙耳机按钮监听(仿酷狗线控效果)

    转载请注明出处:http://blog.csdn.net/fengyuzhengfan/article/details/46461253 当耳机的媒体按键被单击后,Android系统会发出一个广播,该 ...

  7. java 多个监听_​Java中使用for循环对多个Jbutton按钮监听

    Java中Jbutton按钮监听,当多个按钮做的事差不多的时候是可以用for循环的(比如计算器1-9)省事省力. 监听时变量只能是final或者static,不过这些在for循环中明显不行,所以,就在 ...

  8. android 监听物理返回键,Android应用开发之react-native 监听Android物理返回键

    本文将带你了解Android应用开发之react-native 监听Android物理返回键,希望本文对大家学Android有所帮助. 1. componentWillMount(){         ...

  9. Java中事件监听机制

    Java中事件监听机制 一.事件监听机制的定义 要想了解Java中的事件监听机制,首先就要去了解一下在Java中事件是怎样去定义的呢!在使用Java编写好一个界面后,我们就会对界面进行一些操作,比如, ...

最新文章

  1. 中tile函数_HelpGirlFriend 系列 --- tensorflow 中的张量运算思想
  2. 倪海厦天纪笔记16_倪海厦老师讲解天纪易经——第3集(13)
  3. go语言笔记——defer作用DB资源等free或实现调试
  4. JavaScript实现heapsort堆排序算法(附完整源码)
  5. Neo4j简单的样例
  6. LeetCode 2192. 有向无环图中一个节点的所有祖先(拓扑排序)
  7. 2020年中国工业品B2B行业研究报告
  8. sqlmap 用户手册(续)
  9. Oracle学习总结(9)—— Oracle 常用的基本操作
  10. Linux基本操作(6)——Linux 重写rm 命令 实现回收站功能
  11. Android Studio没有看到设备
  12. windows10系统电脑点击睡眠没反应怎么办?
  13. thinkphp 3.2视图里添加URL参数 实例
  14. Android 开发错误集锦
  15. vi 打开文件,行末尾有^M
  16. java考试时间,Java认证考试知识点:Java时间类的函数
  17. vivado 2017 安装教程
  18. java8 numberformat,NumberFormat舍入问题仅限Java 8
  19. 关于微信小程序,input框的值无法输入到e.detail.value
  20. python 处理英文步骤

热门文章

  1. 2、python机器学习基础教程——K近邻算法鸢尾花分类
  2. Docker+Jenkins+Gitlab+Django应用部署实践
  3. linux基础命令篇一
  4. 【跃迁之路】【440天】刻意练习系列199(2018.04.21)
  5. window.open与window.location.href
  6. JavaScript 原型中的哲学思想
  7. EJBCA 6 通过调用WebService接口增加用户并获取证书
  8. 为数据中心度身定制智能基础设施管理系统
  9. YII CRUD 例子
  10. java.lang.UnsupportedOperationException: Can't convert to dimension: type=0x12问题