ListView中的item中的Onclick事件的优化
- ListView的Adapter的优化布局载入器的载入次数最典型的使用方法是使用convertView进行优化,让convertView当做布局载入器的载体,也就是.重用 convertView
用以避免反复创建 View。反复创建 View 代价较大,并且假设重用 view 不改变宽高,重用View能够降低又一次分配缓存造成的内存频繁分配/回收; - convertView = LayoutInflater.from(context).inflate(R.layout.子布局, null)
- 避免在 getView 中有 反复调用的 findViewById
findViewById 的实现是遍历。假设你定义的 View 越复杂代价越大。
Google 推荐的做法是用 ViewHolder,然后保存在 view 的 tag 中。 如今 RecyclerView 也是强制使用 ViewHolder 了。findViewById由于Adapter中的getView方法运行好多次,所以须要优化,,那么典型的优化是是使用ViewHolder一说这个词你应该知道是如何优化(不会的问百度)
- 就是优化item中的点击事件,
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder = null; if (convertView == null) { holder = new ViewHolder(); convertView = LinearLayout.inflate(R.layout.vlist, null);
holder.title = (TextView) convertView.findViewById(R.id.title);
holder.info = (TextView) convertView.findViewById(R.id.info);
holder.viewBtn = (Button) convertView.findViewById(R.id.view_btn); //使用convertView复用点击事件
holder.title.setOnClickListener(holder);
holder.info.setOnClickListener(holder);
convertView.setTag(holder);
} else {
holder = (ViewHolder) convertView.getTag();
} //使用传递參数的形式给点击事件设置内容.
//须要的话,就用addLIst传递过去须要的參数.
holder.addList(position,context);
holder.title.setText((String) mData.get(position).get("title"));
holder.info.setText((String) mData.get(position).get("info")); return convertView;
}
} //提取出来方便点
final class ViewHolder implements View.OnClickListener {
public TextView title;
public TextView info;
public Button viewBtn;
int mPosition;
Context context; public void addList(int inPosition,Context context) {
mPosition = inPosition;
this.context = context;
} @Override
public void onClick(View v) {
//写入item中的点击事件
//...
//v.getTag();
switch (v.getId()){
case R.id.title:
Toast.makeText(context, "点击了title----"+mPosition, Toast.LENGTH_SHORT).show(); break;
case R.id.info: Toast.makeText(context, "点击了info====>>"+mPosition, Toast.LENGTH_SHORT).show();
break; }
}
}
5.这样也就避免的在getView中进行耗时操作有空在更,,菜鸟欢迎指点,一起探讨listView的优化,,
6.就是让ListView在高速滑动的时候停止载入图片,有空补充.
ListView中的item中的Onclick事件的优化的更多相关文章
- ListView中的组件Button的OnClick事件触发时机
Android开发时,ListView中的组件Button的OnClick事件必须在ListView之外的组件事件触发后才能触发? 此处ListView无OnItemClick事件,而且ListVie ...
- ListView中响应item的点击事件并且刷新界面
---恢复内容开始--- 最近在在实现listview功能中遇到了这个问题: 点击事件写在了adapter的item中,不知道如何在listview的点击事件中更新数据的显示: 总结:1.要使用not ...
- 文件重命名之动态改动ListView里指定Item中的组件属性
在Android实际开发过程中常常会遇到,改动ListView中某一项的值.怎样达到这一目的呢? 方法主要有两种: 第一种方式:当ListView中某一项的值发生变化之后,又一次载入数据已达到更新Li ...
- Android处理ListView中的Item中的Button按钮不能点击的问题
问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...
- JavaScript例子1-给网页中所有<p>元素添加onclick事件
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...
- ListView中的Item不能点击的解决方法
有时,为了实现某种功能,在Android程序中会考虑在ListView的每一个Item中添加一个Button(或ImageButton等). 但是,这样会出现一个问题: 当同时设置了Button的on ...
- 为listview的item中的元素设置onclick事件
表达能力比较差,所以现在解释一下标题的意思:listview的列表项,点击的时候触发的是itemOnClick事件,点击后转向到A页:那么,假如在子项中有一个连接是想转到B页,我们该怎么办呢.这样能明 ...
- ListView item 中TextView 如何获取长按事件
昨天晚上小伙伴突然来信, ListView item中嵌套的TextView 无法获取长按事件 从前从来没有仔细留意过, coding后发现...果然没什么动静 而且没有合适的API让我调用获取Tex ...
- android ListView中的Item有Button时候点击异常处理
1.当ListView中有Button的时候往往会遇到很多问题,比较常见的一个问题是: 假设:在ListView中有N个Item当点击其中某个Item中的Button的时候,需要改变当前Button的 ...
随机推荐
- ServletContextListener使用详解(监听Tomcat启动、关闭)
在 Servlet API 中有一个 ServletContextListener 接口,它能够监听 ServletContext 对象的生命周期,实际上就是监听 Web 应用的生命周期. 当Serv ...
- 网络基础配置--usg系统升级
1.usg2000系统升级 1.1.TFTP设置 这里用到一个工具:3CDeamon, 是在由3Com开发类别 Web Development Freeware 软件,是一个简易服务器工具,含TFTP ...
- sql去除重复列(行)
1.存在两条完全相同的纪录 这是最简单的一种情况,用关键字distinct就可以去掉 例子: select distinct * from table(表名) where (条件) 2.存 ...
- [HNOI2017]礼物
Description: 给定两个有n个数的序列,你可以将其中一个进行旋转(想象是在一个环上),或者对序列的每个数加上一个非负整数C 求操作后 \(\sum{(a_i-b_i)^2}\)的最小值 De ...
- Bridges: The Final Battle
对修改操作按时间分治,设$solve(l,r,n,m)$为考虑时间在$[l,r]$的修改操作,作用范围是$n$个点,$m$条边的图. 若$l=r$,则暴力Tarjan统计桥边个数即可. 否则提取出$[ ...
- [Vijos1532]区间 (差分约束)
又是一题我不会的模板题…… 讲一下差分约束吧 差分约束 参考博客 如果一个系统由n个变量和m个约束条件组成,形成m个形如ai-aj≤k的不等式(i,j∈[1,n],k为常数),则称其为差分约束系统.— ...
- VueJs初步学习,一个表格的增删改查
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- webpack常用loader和plugin及打包速度优化
优化 或 也可以用: 备用: 慎用的配置,用的不好会增加打包时间: 代码丑化插件:
- 学习Selenium的历程
Selenium资源包下载 我这段时间在学习Web自动化测试方面的知识,在搭建相应的环境上出现了问题.去Selenium官网下载相对应得包,老是下载不了.而如果直接到CSDN等上下载,需要积分,或者下 ...
- c语言单片机中断服务程序
#include <reg52.h> #define uchar unsigned char #define uint unsigned int uint count; void dela ...