-
Adapter中控件与数据关联关键代码查看全部
-
将layout文件转为View对象2/2查看全部
-
将layout文件转为View对象1/2查看全部
-
baseAdapter的各种方法查看全部
-
原来之前一直写的都是逗比的写法。。。。。尴尬查看全部
-
mInflater查看全部
-
ItemBean的数组查看全部
-
getCount():适配器中数据集中数据的个数 getItem():获取数据集中指定索引对应的数据项。 getItemId():获取指定行对应的id getView():获取每一个item的显示内容。查看全部
-
base adapter有holder.查看全部
-
通用的高效适配器的打造 按照截图的思路,我们可以将自定义的适配器封装起来,方便以后调用,去解决其他的项目问题,也就是代码复用。只需要修改ViewHolder的成员变量(也就是Item的控件)、修改对ViewHolder成员的赋值(ItemBean的成员变量的getter方法)就可以了,非常方便。查看全部
-
对于一些细微的程序比较效率用获取系统纳秒时间方法 关键代码: long start =System.nanoTime();程序开始前计时 ... long end =System.nanoTime();结束计时 long dValue=end-start;计算查值 mSumTime +=dValue统计时间 log.d("xys",String.valueof(mSunTime));打印出时间 viewholder 作为findviewbyid的一个转接,避免系统大量的遍历提高效率。查看全部
-
1.创建ViewHolder类,含有所需的各种控件,为了避免重复的findViewById() class ViewHolder{ public ImageView tv_image; public TextView tv_title; public TextView tv_content; } 2.判断convertView是否为空 空:用setTag()方法将ViewHolder与其绑定 非空:用getTag()方法,取出相关的ViewHolder 重点: (1)convertView为空的时候,通过setTag()将ViewHolder与convertView绑定,每一个空的convertView都将会把Item的三个控件保存到ViewHolder里面。之后通过getTag()方法可以快速找到一个convertView所对应的ViewHolder对象,然后通过ViewHolder的成员变量找到了对应的三个控件,从而避免了用findViewById()去实例化对象。 (2)convertView不为空的时候,使用getTag()方法,取出它所关联的ViewHolder对象,同时也找到l对应控件。 3.之后再创建 ItemBean 对象,为viewHolder的三个控件赋值: ItemBean bean = mylist.get(position); viewHolder.imageView.setImageResource(bean.getItemImageid()); viewHolder.title.setText(bean.getItemTitle()); viewHolder.content.setText(bean.getItemContent()); 4.return convertView查看全部
-
普通式与逗比式的不同在于convertView的使用上: 普通式对convertView进行了处理,充分利用了ListView的缓存机制,避免了重复创建View对象,因为通过LayoutInflater对象的inflate()方法创建View对象是非常耗时且耗资源的。 通过简单的判断: if (convertView == null){ convertView = myInflater.inflate(R.layout.item, null); } ,就可以避免大量创建View对象,从而对 getView()做了较好的优化。 ----------------------------------- 摘自评论区: 如果将findViewById写在if(convertView==null)中的话,运行后listview的顺序是混乱的。 普通式,要慎用。 系统每次调用 findViewById()的时候都会遍历一次视图树,当视图树很复杂的时候就会消耗大量的时间。查看全部
-
为何是“逗比式”?因为这里只使用了getView()的position参数,完全没有利用另外两个参数。本质上说,是“没有利用到ListView的缓存机制”。每次使用getView(),都通过 LayoutInflater 创建新的View对象view,并在view中找到相应的控件、去给它设置相应的值,完全没有利用到 ListView 的缓存机制,这样是对资源的极大浪费。查看全部
-
具体说明查看全部
举报
0/150
提交
取消