BaseAdapter自定义适配器

  • 内容
  • 评论
  • 相关

 

在我们使用ListView的时候,大部分时间我们使用的是ArrayAdapter或者SimpleAdapter,但是当ListView的列表项中出现按钮,复选框等附带事件的控件时,数据是无法映射到这些控件的,即使采用自定义布局文件显示控件,它们的事件监听也不会响应,这时就需要使用BaseAdapter自定义适配器,ArrayAdapter和SimpleAdapter都是直接继承于BaseAdapter

自定义适配器需要建立一个新类继承自BaseAdapter,并且覆写该类中的四个抽象方法

public int getCount(); 获取item的总数

public Object getItem(int position);       获取自定索引对应的数据项

public long getItemId(int position);       获取对应项的id,也就是position

public View getView(int position, View convertView, ViewGroup parent);  获取对应item的view,用于显示

我们在一个实例中实现自定义适配器

第一步:定义主ActivityTestListView局文件 为了简单期间主布局文件仅仅包含一个ListView

第二步:定义ListView每一项的布局文件,包含一张图片,以及两个TextView

第三步:准备数据源,使用List来保存需要显示的数据,为了方便封装,先准备一个工具类,用于对应每一个item的数据

第四步:最重要的一步,自定义MyAdapter继承自BaseAdapter,并且覆写其四个抽象方法,定义一个构造函数,用于传递数据,由于显示View需要Context对象,所以构造函数的参数有两个

最后一步:前面已经准备好了数据源,还有自定义好了适配器,现在可以在Activity中使用了

效果图:(BaseAdapter中getView的这种实现是不优雅的,不高效的,优雅的使用下一篇文章再详解)

源码下载:360云盘

http://yunpan.cn/cuUvgEN96mP9H  访问密码 c6fe

listview01

 

 

 

评论

0条评论

发表评论

邮箱地址不会被公开。