博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android 关于ListView中按钮监听的优化问题(方法二)
阅读量:4138 次
发布时间:2019-05-25

本文共 1347 字,大约阅读时间需要 4 分钟。

关于ListView中按钮监听的优化问题(方法一)地址:

 

之前的方法一,虽然能够解决position的传递,但是我们一般在监听事件中会经常用到Context和存储数据的集合ArrayList,若每次都要将这么多的数据传递给Button的话,那个Button的数据量必然会增大。

因此,参考方法一我们可以将Button的监听事件写成Adapter的内部中,方便我们调用Adapter中的所有数据。废话不多说,直接上代码:

1 // ... 2  3 private ButtonClickListener btnClickListener ; 4  5 public ItemAdapter(Context c, ArrayList
> appList, int resource, String[] from, int[] to) { 6 super(c, appList, resource, from, to); 7   btnClickListener = new ButtonClickListener(); 8 } 9 10 @Override11 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 }2728 private class ButtonClickListener implements View.OnClickListener {29 @Override30 public void onClick(View arg0) {31 int position = (Integer) ((Button) arg0).getTag();32 // ...33 }34 }35 36 private class Handler {37   Button btn;38 }

 

转载地址:http://rrovi.baihongyu.com/

你可能感兴趣的文章
postgresql监控工具pgstatspack的安装及使用
查看>>
【JAVA数据结构】双向链表
查看>>
【JAVA数据结构】先进先出队列
查看>>
Objective-C 基础入门(一)
查看>>
Flutter Boost的router管理
查看>>
C++模板
查看>>
【C#】如何实现一个迭代器
查看>>
【C#】利用Conditional属性完成编译忽略
查看>>
VUe+webpack构建单页router应用(一)
查看>>
(python版)《剑指Offer》JZ01:二维数组中的查找
查看>>
Spring MVC中使用Thymeleaf模板引擎
查看>>
PHP 7 的五大新特性
查看>>
深入了解php底层机制
查看>>
PHP中的stdClass 【转】
查看>>
XHProf-php轻量级的性能分析工具
查看>>
OpenCV gpu模块样例注释:video_reader.cpp
查看>>
就在昨天,全球 42 亿 IPv4 地址宣告耗尽!
查看>>
Mysql复制表以及复制数据库
查看>>
Linux分区方案
查看>>
如何使用 systemd 中的定时器
查看>>