当前位置: 代码迷 >> Android >> 【60分】ViewHolder形式为啥要用static类
  详细解决方案

【60分】ViewHolder形式为啥要用static类

热度:86   发布时间:2016-05-01 14:46:12.0
【60分】ViewHolder模式为啥要用static类?
看网上的用例 大都是 static的 
Java code
   static class ViewHolder {            TextView text;            ImageView icon;        }


必须是static 吗? 还是在这用static有特殊的作用?

------解决方案--------------------
不是必须的吧
------解决方案--------------------
探讨

保证ViewHolder的对象唯一,节省内存~如果处理不当,在异步加载图片时很可能导致图片位置错乱~

------解决方案--------------------
探讨
引用:

买本java书看看就好了,静态的自然比非静态的效率高


怎么个高法?

------解决方案--------------------
探讨
引用:

这个viewholder 模式的本意是减少findViewById的次数

额 这样啊。

------解决方案--------------------
探讨
引用:
引用:

这个viewholder 模式的本意是减少findViewById的次数

额 这样啊。

使用convertView缓存才是减少findViewById的次数,提高效率。
使用静态,是保证holder = new ViewHolder();时不会重新分配内存空间,节省内存

------解决方案--------------------
那个对象肯定不是唯一的,哈哈,除非listview只有一条记录
------解决方案--------------------
探讨

引用:
引用:

这个viewholder 模式的本意是减少findViewById的次数

额 这样啊。

使用convertView缓存才是减少findViewById的次数,提高效率。
使用静态,是保证holder = new ViewHolder();时不会重新分配内存空间,节省内存

------解决方案--------------------
探讨

引用:
那个对象肯定不是唯一的,哈哈,除非listview只有一条记录

- -||static关键字是java中的,保证类的内存地址唯一,也就是对象唯一,难道这个定义不是这样的?
除非listview只有一条记录?这和对象唯一有什么关系呢,ViewHolder里面放的是控件,控件之上才是放list数据,正因为list中每个item的控件是一样的,才会使用这个stat……

------解决方案--------------------
探讨
引用:

引用:
那个对象肯定不是唯一的,哈哈,除非listview只有一条记录

- -||static关键字是java中的,保证类的内存地址唯一,也就是对象唯一,难道这个定义不是这样的?
除非listview只有一条记录?这和对象唯一有什么关系呢,ViewHolder里面放的是控件,控件之上才是放list数据,正因为list中每个item的控件是……
  相关解决方案