为了实现数据适配,Android 系统提供了一系列的适配器(Adapter)对ListView 进行数据适配。 适配器就像显示器,把复杂的数据按人们易接受的方式来展示。 接下来介绍几种常用的Adapter。
(1)BaseAdapter
BaseAdapter 顾名思义即基本的适配器。 它实际上就是一个抽象类,该类拥有4 个抽象方法。 在Android 开发中,可根据这几个抽象方法来对ListView 进行数据适配。
BaseAdapter 的4 个抽象方法的功能如表7-2 所示。
表7-2 BaseAdapter 的几个抽象方法
表7-2 介绍的4 个抽象方法分别用于设置Item 的总数、获取Item 对象、获取Item id、得到Item 视图。 开发者在适配数据到ListView 时,需要创建一个类来继承BaseAdapter 并重写这4 个抽象方法。
(2)SimpleAdapter
SimpleAdapter 继承了BaseAdapter,实现了BaseAdapter 的4 个抽象方法,分别是getCount( )、getItem( )、getItemId ( )、getView ( ) 方法。 因此,开发者需要创建SimpleAdapter 的构造方法如下:
上述构造方法有多个参数,下面针对这些参数进行介绍:
· Context context:Context 对象,getView()方法中需要用到Context 来将布局文件转换为View 对象。
· List <? Extends Map<String, ? >>data:数据集合,SimpleAdapter 已经在getCount()方法中实现将数据集合的大小返回。(www.xing528.com)
· int resource: Item 布局的资源Id。
· String[] from: Map 集合里面的Key。
· int[] to: Item 布局相应的空间Id。
需要注意的是,SimpleAdapter 只能适配Checkable、TextView、ImageView,其中Checkable 是一个接口,CheckBox 控件实现了该接口。 TextView 适用于显示文本的控件,ImageView 是用来显示图片的控件。 如果int[] to 所代表的控件不是这三种类型,则系统会报IllegalStateException。
(3)ArrayAdapter
ArrayAdapter 也是BaseAdapter 的子类。 与SimpleAdapter 相同,ArrayAdapter 也不是抽象类,ArrayAdapter 通常用于适配TextView 控件,例如Android 中Setting(设置菜单)。
ArrayAdapter 的构造方法如下所示:
ArrayAdapter 构造方法中同样有多个参数,下面针对这些参数进行介绍:
· Context context: Context 对象。
· int resource: Item 布局的资源Id。
· int textViewResourceId: Item 布局相应的控件TextView 的Id。
· T[] objects:需要适配的数据数组。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。