ListView优化-通用ViewHolder编写备份】的更多相关文章

ViewHolder.java package cn.edu.bzu.util; import android.content.Context; import android.util.SparseArray; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; /** * Created by monster on 2015/4/20. * Have a goo…
[ps:CommonAdapter基于ViewHolder工具类] CommonAdapter.java package cn.edu.bzu.util; import android.content.Context; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import andro…
给学生讲课的时候,发现存在这个问题,下来百度了下,发现很纠结,涉及到了内部类对外部类的引用,静态类的生命周期等java知识,现总结如下: static class ViewHolder { //定义listView item中相应的控件 } 这里的ViewHolder类需不需要定义成static,根据实际情况而定,如果item不是很多的话,可以使用,这样在初始化的时候,只加载一次,可以稍微得到一些优化: 不过,如果item过多的话,建议不要使用.因为static是Java中的一个关键字,当用它来…
如果有人还不了解ViewHolder为什么可以起到优化作用,我这边再做下简单说明:Android的findViewById动作是比较耗时的,需要遍历布局的树形结构,才能找到相应的视图.所以如果想在这一块进行优化,我们就需要把find过后的内容进行缓存,所以就用ViewHolder的方法. 这个方法很容易理解,但是可能有些人还是比较较真,就像我,这样可以起到缓存作用,那为什么内部类非得要声明成static的呢,普通的内部类不是也起到这样的效果吗?这个疑问也困扰了我很久.直到我看了<Effectiv…
如果有人还不了解ViewHolder为什么可以起到优化作用,我这边再做下简单说明:Android的findViewById动作是比较耗时的,需要遍历布局的树形结构,才能找到相应的视图.所以如果想在这一块进行优化,我们就需要把find过后的内容进行缓存,所以就用ViewHolder的方法. 这个方法很容易理解,但是可能有些人还是比较较真,就像我,这样可以起到缓存作用,那为什么内部类非得要声明成static的呢,普通的内部类不是也起到这样的效果吗?这个疑问也困扰了我很久.直到我看了<Effectiv…
1,listview加载性能优化ViewHolder 转自: http://blog.csdn.net/jacman/article/details/7087995 在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新使用view来减少对象的创建. ListView加载数据都是在public Vie…
前言 接近半年的时间没有写博客了,今年公司的项目有点多,比较忙,没时间写,这是其一.其次是,这半年来,有时间的时候,我都会看看自己以前写的博客,也许是以前刚刚写博客,经验不足,感觉写出来的博客质量很不好,而最近,也经常在网上看别人的博客学到到了很多,趁最近项目都差不多收尾了,就写写今年下半年的第一篇博客... 从事Android开发工作有几年时间了,我发现做手机应用的话,基本都离不开ListView,GridView,这些控件,尤其是ListView 我曾开发过一个项目,70%的都是列表,光写a…
1.常驻型广播  常驻型广播,当你的应用程序关闭了,假设有广播信息来,你写的广播接收器相同的能接受到.  他的注冊方式就是在你的应用程序中的AndroidManifast.xml进行注冊. 通常说这样的方式是静态注冊  以下是配置样例 2<receiver android:name=".widget.DeskWidgeWeather"> 3<meta-data android:name="android.appwidget.provider" an…
引起Android内存泄露有很多种原因,下面罗列了一些问题,以后会一一解决 1.构造Adapter时没有使用缓存convertView(衍生出ListView优化问题) 2.查询数据库游标没有关闭 3.Activity中生命周期对象大于Activity生命周期(关于Application Context与Activity Context) 4.Bitmap对象不使用时没有recycle掉(这里还有其他解决方案) 今天说的是第一种:如何使用缓存来优化ListView 因为如果不使用缓存conver…
1.ListView基本概念 列表显示需要三个元素: ListView:用来展示列表的View. 适配器:用来把数据映射到ListView上 数据:具体的将被映射的字符串,图片或基本组件 适配器类型分为三种:ArrayAdapter,SimpleAdapter和SimpleCursorAdapter. 1.1.ArrayAdapter ArrayAdapter是BaseAdapter的派生类,在BaseAdapter的基础上,添加了一项重大的功能:可以直接使用泛型构造. ArrayAdapter…