Android实现一个简单的自定义适配器
经常面试会被问以下的面试题:ListView的优化方案 答:
(1)如果自定义适配器,那么在getView方法中要考虑方法传进来的参数convertView是否为null,如果为null就创建convertView并返回,如果不为null则直接使用。在这个方法中尽可能少创建view。
(2)给convertView设置tag(setTag()),传入一个viewHolder对象,用于缓存要显示的数据,可以达到图像数据异步加载的效果。
(3)如果listview需要显示的item很多,就要考虑分页加载。比如一共要显示100条或者更多的时候,我们可以考虑先加载20条,等用户拉到列表底部的时候再去加载接下来的20条。
在安卓开发的过程中,我们经常会用到ListView控件,在ListView中也会有一个个的item,我们在使用的时候需要对其进行数据的适配,那么Android系统提供了一系列的适配器(Adapter)来实现数据的适配。又已知我常用的适配器包括:BaseAdapter、SimpleAdapter、ArrayAdapter。其中后两项SimpleAdapter和ArrayAdapter都是BaseAdapter的子类,相当于是Android提供的两种可以直接来用的适配器,在使用的时候我们可以根据自己的需要传入参数即可。那么其实在实际开发的时候,我们用的更多的是BaseAdapter这样一个适配器来做一个“自定义”的适配器。那么接下来,我会用一个小小的例子来介绍使用BaseAdapter。
1.首先我们需要用来写一个实体类,这个实体类用来封装我们需要适配显示的信息的集