为了更好的理解Adapter我们这里先看一下接口的关系图![](https://img-blog.csdn.net/20140603143407625?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
我们主要讲解就是BaseAdapter因为它同时继承了ListAdapter与spinnerAdapter,而且绝大部分的Adapter都继承它。
Adapter的实现类如下:
ArrayAdapter:简单.易用的Adapter,通常用于将数组或List集合的多少值包装成列表。
SimpleAdapter:并不简单.功能强大的Adapter,可用于将list集合的多少对象把装成多个列表项。
SimpleCursorAdapter:与SimpleAdapter基本相似,只适用于包装Cursor提供的数据。
BaseAdapter:通常用于被扩展。扩展BaseAdapter可以对各个表项进行最大限度的定制。
下面介绍一下ArrayAdapter来实现的ListView。![](https://img-blog.csdn.net/20140603144400031?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里面的R.layout.array_item的布局如下,另外R.layout。checked_item也类似里面是一个CheckTextview就不做演示。![](https://img-blog.csdn.net/20140603144709843?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
最后来一张结果图![](https://img-blog.csdn.net/20140603145408187?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
接下来介绍一下SimpleAdapter创建ListView,上面的ArrayAdapter功能有限,它的列表只能是TextView,而SimpleAdapter 的功能就比较强大了
![](https://img-blog.csdn.net/20140603151655187?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20140603152045984?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20140603152212359?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20140603152230812?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20140603160711343?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
上面就是item
结果图:![](https://img-blog.csdn.net/20140603152501687?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
这里面的关键在于创建SimpleAdapter,它需要5个参数,其中后面四个参数很重要,这里我分别介绍一下:
第二个参数:这个参数是一个List<?extendsMap<string,?>>类型的集合对象,这个集合中每个Map<String,?>对象生成一个列表项。
第三个参数:这个参数指定一个界面布局的ID。比如此处指定了R.layout.simple_iteam,这意味着使用这个布局作为列表项组件。
第四项参数:这个参数是一个String【】类型的参数,这个参数提取Map<String,?>对象中哪些key对应的value来生成列表项。
第五个参数:这个参数是一个int【】类型的参数,这个参数决定填充哪些组件。
其实仔细发现这两个是差不多的 只是插入的类型一个单一化,另一个多元化。
SimpleCursonAdapter与上面的SimpleAdapter基本相同这里就不做介绍。最后我们介绍一下
BaseAdapter![](https://img-blog.csdn.net/20140603162312546?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
![](https://img-blog.csdn.net/20140603162332828?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQva2x1aW5n/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
布局的话只有一个ListView故在此不做列出代码。
这里的话基本已介绍完成,希望对大家有所帮助