Android笔记七.ListView+Adapter

本文深入探讨了Android中的ListView组件,强调了ListView的组成部分:View、Adapter和数据。Adapter作为数据和UI之间的桥梁,允许通过BaseAdapter、ArrayAdapter、SimpleAdapter和SimpleCursorAdapter将各种数据映射到ListView上。文中详细讲解了这些Adapter的工作原理和使用场景,并提供了实例代码进行分析。
摘要由CSDN通过智能技术生成
深入理解Adapter
转载请表明出处:http://blog.csdn.net/u012637501(嵌入式_小J的天空)
一、ListView
    ListView是Android开发过程中较为常见的组件之一,它将数据以列表的形式展现出来。一般而言,一个ListView由以下三个元素组成:
1.View展示列表视图(一行显示的信息),通常是一个xml所指定的大家都知道Android的界面基本上是由xml文件负责完成的,所以ListView的界面也理所应当的使用了xml定义。例如在ListView中经常用到的“android.R.layout.simple_list_item_1”等, 就是Android系统内部定义好的一个xml文件。
2.Adapter适配器:用于将不同的数据映射到View上。不同的数据对应不同的适配器,如ArrayAdapter,CursorAdapter, SimpleAdapter等, 他们能够将数组指针指向的数据Map等数据或基本组件映射到View上。也正是由于适配器的存在,使得ListView的使用相当灵活,经过适配器的处理后,在 view看来所有的数据映射过来都是一样的。
3.数据:具体的数据和资源。可以是字符串图片、Map映射等,通过适配器这些数据将会被现实到 ListView上。
    总之,所有的数据和资源要显示到ListView上都通过适配器来完成。ArrayAdapter,CursorAdapter, SimpleAdapter为系统已有的适配器,可以将如数组、Cursor指向的数据(一般为数据库)、Map里的数据。

二、深入理解Adapter
1.概要:Adapter是连接后端数据和前端视图显示的适配器接口,是数据和UI(View)之间的桥梁。通过适配器,可以将不同的数据映射并显示到View上。在常见的View(ListView、GridView)等地方都需要用到Adapter。对于Data、Adapter、View的关系,如下图所示:
2.Android中Adapter类
(1)BaseAdapter适配器为一个抽象类,使用该类可以实现更为复杂的ListView。通过文档可以看出,ArrayAdapter,CursorAdapter, SimpleAdapter都继承于BaseAdapter。所以通过继承BaseAdapter就可以完成自己的Adapter,可以将任何复杂组合的数据和资源,以任何你想要的显示效果展示处理。继承BaseAdapter之后,需要重写以下四个方法:getCount,getItem,getItemId,getView。但是,ArrayAdapter,CursorAdapter, SimpleAdapter则无须要全部重写上述四种方法。
(2)ArrayAdapter适配器支持泛型操作,最为简单,只能展示一行字符串(即列表每行只能显示一行字符串)
(3)SimpleAdapter适配器有最好的扩充性,可以自定义出各种效果(字符串、图片、Map集),通常使用xml布局文件来指定视图(布局文件定义控制显示图片、字符串、Map集等内容)。
(4)SimpleCursorAdapter适配器可以适用于简单的纯文字型ListView,它需要Cursor的字段和UI的id对应起来。如需要实现更复杂的UI也可以重写其他方法。可以认为SimpleAdapter对数据库的简单结合,可以方便地把数据库的内容以列表的形式展示出来。

3.ListView加载adapter一般过程
(1)先判断adapter有多少数据项,根据这个数据确定有多少item(列表项). -----getCount()方法实现 
(2)确定每个item里加载哪个View.                                     -----getView()方法实现
(3)向对应的View中加载需要显示的数据
4.ArrayAdapter实例分析
(1)开发基本思路
    ArrayAdapter适配器支持泛型操作, 列表的每一项只能显示一串字符,不能显示图片等资源数据,使用List作为数据源。
*使用字符串数组作为数据源
a.实现一个字符串数组作为数据源(List集)(数组元素有几个,就有几个列表项
b.实例化一个ArrayAdapter<String> 适配器对象,用于装配数据源到指定的View.
ArrayAdapter<String> adapter=new ArrayAdapter<String>(  this, android.R.layout.simple_expandable_list_item_1,  strs ); 
c.将ArrayAdapter适用于ListActivity的ListView
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值