ViewHolder VS HolderView ?】的更多相关文章

ViewHolder 模式在 Android 中大家应该都不陌生了,特别是在 ListView 中通过 ViewHolder 来减少 findViewById 的调用和 类型的转换. 而 HolderView 模式是把 ViewHolder 给业务逻辑化,不再仅仅只是保存一些 View, 还要带有业务逻辑. HolderView 的一个示例如下: 123456789101112131415161718192021222324252627282930313233343536373839404142…
转载本专栏每一篇博客请注明转载出处地址,尊重原创.此博客转载链接地址:点击打开链接  http://blog.csdn.net/qq_32059827/article/details/52718489 对ListView的优化,也就是对其封装:抽取方法共性,封装 BaseAdapter 和 ViewHolder 大多App都会使用到的基本控件 --- Listiew,特别像新闻浏览类的比如说"今日关注",或者"应用宝"这种汇集手机软件集合的.而且大家都知道 需要给每…
使用ConvertView和ViewHolder的优化是针对ListView的Adapter(BaseAdapter)的.这种优化的优点如下: 1)重用了ConveertView,在很大程度上减少了内存的消耗.通过判断ConvertView是否为NULL,如果是NULL那么就需要生成一个新的View出来(通过LayoutInflater生成),绑定数据后显示给用户:如果ConvertView不是NULL,则我们需要做的就只有绑定数据并呈现给用户. 2)由于ListView中的Item往往都是只有…
ViewHoder优化:     @Override         public View getView(int position, View convertView, ViewGroup parent) {             ViewHolder viewHolder = null;             if (convertView == null) {                 convertView = View.inflate(getActivity(), R.la…
ViewHolder通常出现在适配器里,为的是listview滚动的时候快速设置值,而不必每次都重新创建很多对象,从而提升性能.在android开发中Listview是一个很重要的组件,它以列表的形式根据数据的长自适应展示具体内容,用户可以自由的定义listview每一列的布局,但当listview有大量的数据需要加载的时候,会占据大量内存,影响性能,这时候就需要按需填充并重新使用view来减少对象的创建.ListView加载数据都是在public View getView(int positi…
//CommonAdapter import android.content.Context; import android.widget.BaseAdapter; import java.util.List; /** * Created by Administrator on 2016/1/28. */ public abstract class CommonAdapter<T> extends BaseAdapter { private List<T> mDatas; priv…
1.自定义listview,首先在activity.xml中插入一个listview,可以用android:divider=""设置分割线颜色样式,android:dividerHeight=""设置分割线高度. 2.新建viewholder_item.xml设计每行Item显示的样式布局. 3.自定义Adapter(继承BaseAdapter),定义一个内部类ViewHolder,并将布局中的控件作为成员变量.如: public final class ViewH…
先看看ViewHolder通用写法         ViewHolder holder = null;         if(convertView == null){                 convertView = mInflater.inflate(R.layout.xxx null);                 holder = new ViewHolder();                 holder.tvXXX = (TextView)findViewById(…
转自:http://www.cnblogs.com/bluestorm/p/5867061.html ListView优化中ViewHolder要不要定义为static静态内部类?   给学生讲课的时候,发现存在这个问题,下来百度了下,发现很纠结,涉及到了内部类对外部类的引用,静态类的生命周期等java知识,现总结如下: static class ViewHolder { //定义listView item中相应的控件 } 这里的ViewHolder类需不需要定义成static,根据实际情况而定…
如果有人还不了解ViewHolder为什么可以起到优化作用,我这边再做下简单说明:Android的findViewById动作是比较耗时的,需要遍历布局的树形结构,才能找到相应的视图.所以如果想在这一块进行优化,我们就需要把find过后的内容进行缓存,所以就用ViewHolder的方法. 这个方法很容易理解,但是可能有些人还是比较较真,就像我,这样可以起到缓存作用,那为什么内部类非得要声明成static的呢,普通的内部类不是也起到这样的效果吗?这个疑问也困扰了我很久.直到我看了<Effectiv…