最近在开发安卓的过程中发现listview无疑是一个经常使用的组件,而提到listview又不得不提一下适配器了,我打算用几个实例,由浅入深的向大家仔细讲解一下适配器的使用,虽然这算不上什么高深的问题,我还是希望能给大家带来一些收获,我也是菜鸟一只,写的不好的或者有错的地方还请大家帮忙指出。下面进入正文:
首先让我们来认识一下适配器:
什么是适配器呢?顾名思义,就是把一些数据给弄得适当,适合以便于在view上显示。适配器就像显示器,把复杂的东西按人可以接受的方式来展现。也可以这样来理解适配器,listview通过适配器,理解我们要对listview里加入什么内容,而我们在适配器里@override的方法,就是让我们写上我们要告诉这个listview的一些基本内容。
可以说适配器就是数据和视图之间的桥梁,学好适配器还是非常重要的。
让我们先从各个方面理解适配器,然后看一些例子我想应该就可以彻底掌握它了!
适配器的工作原理:
适配器是怎么处理得到的数据,并把它显示出来的呢?其实很简单,说白了适配器它也是一个类,在类里面它实
现了父类的这几个方法:
public int getcount() //得到数据的行数
public object getitem(int position) //根据position得到某一行的记录
public long getitemid(intposition) //的到某一条记录的id
还有最重要的:
publicview getview(intposition, view convertview, viewgroup parent)
//相比于其它几个方法这个方法是最重要的,它显式的定义了适配器将要以什么样的方式去显示我们所
填充的数据,在自定义的适配器里面我们通常会给它写个布局文件。
这些在最后的一两个例子里会仔细讲解,我们从简单的看起:首先看看常用的适配器
我们常用的适配器一共有三个,当然不包含自定义的适配器:就是arrayadapter,simpleadapter,simplecursoradapter 这三个,他们都是继承于baseadapter 。
下面我会逐一介绍,我们在具体应用中来继续学习adapter:
说道adapter不得不说道listview,或者说用到listview不得不提到adapter
在android开发中listview是比较常用的组件,它以列表的形式展示具体内容,并且能够根据数据的长度自适应显示。
而列表的显示需要三个元素:
1.listveiw 用来展示列表的view。
2.适配器 用来把数据映射到listview上的中介。
3.数据 具体的将被映射的字符串,图片,或者基本组件。
根据列表的适配器类型,列表分为三种,arrayadapter,simpleadapter和simplecursoradapter
其中以arrayadapter最为简单,只能展示一行字。simpleadapter有最好的扩充性,可以自定义出各种效果。simplecursoradapter可以认为是simpleadapter对数据库的简单结合,可以方面的把数据库的内容以列表的形式展示出来
我们从最简单的listview开始(arrayadapter):
我打算把这几种适配器的例子放在一个app里面,然后上传到我的资源,再分享链接给大家。所以我打算由mainactivity里的button来跳转到各个例子,现在让我们一步步的把这个demo写出来。
项目开始啦!
(1)首先,新建一个app ,名字叫做 adapterdemo ,先在activity_main.xml里添加一个button,一会跳转的时候使用。
(2)然后新建一个类arrayadapterdemo继承自activity作为我们第一个小例子的activity,@override 我们的oncreate方法
新建一个xml文件arrayadapterdemo.xml作为我们的布局文件,其中包含一个文本域和一个listview,代码如下:
arrayadapterdemo.xml:
(3)然后回到arrayadapterdemo,定义一个listview暂且叫做lv,并且lv=(listview)findviewbyid(r.id.arrayadapterdemolistview);
objects)来装配数据,要装配这些数据就需要一个连接listview视图对象和数组数据的适配器
来两者的适配工作。
android.r.layout.simple_list_item_1是系统定义好的布局文件只显示一行文字,数据源(一个list集合)。同时用setadapter()完
成适配的最后工作。
一般写一个getdata()方法来作为最后一个参数,最终代码如下:
再在androidmanifest.xml中注册activity并在主界面中完成button监听跳转就可以了。
下面是实现结果:

教程一就先到此结束啦!一下子写在一篇里面篇幅太长,大家也不喜欢看。
下次讲解的是:
simplecursoradapter在listview中显示手机联系人列表。
请大家继续关注!
源码我会在最后一篇结束的时候发上来,我也是边写博客边写的代码,我觉得这样可能讲的思路更清晰一些。
我也是学生,水平有限,还请多多指教!