之前发表过一篇文章,讲listview的,今天再发一篇,因为我对base adapter 有了新的理解。
首先说,最好的adapter实现方式,是要做到2点,1,充分利用listview本身的缓存机制,listview在item滑出的时候会放到缓存里,叫receyle,需要的时候再显示出来,放入新的数据,因为item的view是用layoutflate创建的,如果每一次执行adapter的getview方法都要执行layoutFlater.inflate方法,每次都会创建convertview,很耗时。所以,要利用listview的缓存机制,如何利用?判断convertview是否为null,如果为null,就创建view,如果不为null,就直接用。这样的话,就可以复用之前的view,省时,省性能。2,findviewbyid这个方法很耗时,如果每次都要调这个方法,很耗时的。所以,要把item里的对象保存起来,用viewholder。用settag方法把viewholder和convert view关联起来。真正做到这2点,才算是优秀的adapter。
例子代码很多,我就不贴了。
下面说说优秀adapter的标准,adapter,是view和数据源之间的,目的是易扩展,降低藕合度。
1、创建Bean对象,用于封装数据。
2、在构造方法中初始化映射数据List
3、创建viewholder类,创建布局映射关系
4、判断convertview为null,则创建,并设置tag,否则,通过tag来取出viewholder
5、给viewholder中的控件设置数据
小结:虽然现在手机性能逐步提高,但是作为程序员,不能只是完成功能,而是对代码精雕细琢,达到最好,这才是最文艺的程序员。事实证明,最文艺的方式是很优秀的,很有必要的。