1. ListView的Adapter的优化布局载入器的载入次数最典型的使用方法是使用convertView进行优化,让convertView当做布局载入器的载体,也就是.重用 convertView

    用以避免反复创建 View。反复创建 View 代价较大,并且假设重用 view 不改变宽高,重用View能够降低又一次分配缓存造成的内存频繁分配/回收;
  2. convertView = LayoutInflater.from(context).inflate(R.layout.子布局, null)
  3. 避免在 getView 中有 反复调用的 findViewById
    findViewById 的实现是遍历。假设你定义的 View 越复杂代价越大。
    Google 推荐的做法是用 ViewHolder,然后保存在 view 的 tag 中。 如今 RecyclerView 也是强制使用 ViewHolder 了。
    findViewById由于Adapter中的getView方法运行好多次,所以须要优化,,那么典型的优化是是使用ViewHolder一说这个词你应该知道是如何优化(不会的问百度)
  4. 就是优化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事件的优化的更多相关文章

  1. ListView中的组件Button的OnClick事件触发时机

    Android开发时,ListView中的组件Button的OnClick事件必须在ListView之外的组件事件触发后才能触发? 此处ListView无OnItemClick事件,而且ListVie ...

  2. ListView中响应item的点击事件并且刷新界面

    ---恢复内容开始--- 最近在在实现listview功能中遇到了这个问题: 点击事件写在了adapter的item中,不知道如何在listview的点击事件中更新数据的显示: 总结:1.要使用not ...

  3. 文件重命名之动态改动ListView里指定Item中的组件属性

    在Android实际开发过程中常常会遇到,改动ListView中某一项的值.怎样达到这一目的呢? 方法主要有两种: 第一种方式:当ListView中某一项的值发生变化之后,又一次载入数据已达到更新Li ...

  4. Android处理ListView中的Item中的Button按钮不能点击的问题

    问题描述:ListView列表中的Button按钮按钮不能点击 解决办法:在ListView中的Item项的布局文件中加上:android:descendantFocusability="b ...

  5. JavaScript例子1-给网页中所有<p>元素添加onclick事件

    <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title&g ...

  6. ListView中的Item不能点击的解决方法

    有时,为了实现某种功能,在Android程序中会考虑在ListView的每一个Item中添加一个Button(或ImageButton等). 但是,这样会出现一个问题: 当同时设置了Button的on ...

  7. 为listview的item中的元素设置onclick事件

    表达能力比较差,所以现在解释一下标题的意思:listview的列表项,点击的时候触发的是itemOnClick事件,点击后转向到A页:那么,假如在子项中有一个连接是想转到B页,我们该怎么办呢.这样能明 ...

  8. ListView item 中TextView 如何获取长按事件

    昨天晚上小伙伴突然来信, ListView item中嵌套的TextView 无法获取长按事件 从前从来没有仔细留意过, coding后发现...果然没什么动静 而且没有合适的API让我调用获取Tex ...

  9. android ListView中的Item有Button时候点击异常处理

    1.当ListView中有Button的时候往往会遇到很多问题,比较常见的一个问题是: 假设:在ListView中有N个Item当点击其中某个Item中的Button的时候,需要改变当前Button的 ...

随机推荐

  1. 事务(transaction )

    事务(Transaction)是访问并可能更新数据库中各种数据项的一个程序执行单元(unit). 事务是恢复和并发控制的基本单位. 事务有4个特性:原子性.一致性.隔离性.持久性.(即ACID) 原子 ...

  2. BigDecimal使用中的一些注意事项

    Java的商业计算,不能用float和double,因为他们无法进行精确计算.但是Java的设计者给编程人员提供了一个很有用的类BigDecimal,他可以完善float和double类无法进行精确计 ...

  3. Apache自带压力测试工具----linux环境中ab命令简介及结果分析

    ab(apache bench)是apache下的一个工具,主要用于对web站点做压力测试, 基础用法: 其中-c选项为一次发送的请求数量,及并发量.-n选项为请求次数. 实验测试: [dev@web ...

  4. HTML5:在移动端禁用长按选中文本功能

    很多时候,我们在写的手机页面需要用户进行长按然后响应一个事件.但是在微信中用户的长按操作被默认为谈出来一个复制的选项.那么这个时候如何去禁止这个东西呢? 其实很简单,方法看下面: 只需要在你需要禁止的 ...

  5. Flask框架返回值

    Flask中的HTTPResponse def index(): #视图函数 return 'Hello World' #直接return就是返回的字符串 Flask中的Redirect,和djang ...

  6. Html链接标签:

    <a>标签可以在网页上定义一个链接地址,它的常用属性有: (1)href属性 定义跳转的地址 (2)title属性 定义鼠标悬停时弹出的提示文字框 (定义鼠标悬停时,弹出的提示框中的文字) ...

  7. jmeter接口测试实例4-学生金币充值

    Jmeter实例4:学生金币充值 添加http协议—添加IP.路径.方法,添加cookie管理器,察看结果树如下图所示 输入管理员名称:niuhanyang,输入值,域,如下图所示: 输入必填参数,运 ...

  8. db2 reorg详解

    reorgchk,检查table index 是否需要重组.reorg 重组,重新放置数据位置.runstats 统计信息,可以优化查询器 一个完整的日常维护规范可以帮助 DBA 理顺每天需要的操作, ...

  9. JS膏集02

    JS膏集02 1.复习 函数也是对象 2.贪食蛇案例 <!DOCTYPE html> <html lang="en"> <head> <m ...

  10. Atcoder4105 Same Integers(模拟)

    https://abc093.contest.atcoder.jp/tasks/arc094_a?lang=en 思路题还是不太会做哈.感觉数据不大,一开始dfs做但是发现不是最优解,一想确实是这么一 ...