leverage00 2016-06-23
1 ListView 与 Adapter 的关系
ListView 是 Android 开发过程中较为常见也是非常重要的组件之一,它可以将数据以列表的形式展现出来。
我们的手机应用常用的软件都有 ListView 如手机联系人列表,来电号码列表等。
一个ListView主要是由以下三个元素组成:
(1)View:即是ListView 的定义,一般在 XML 文件中定义。
(2)Adapter:适配器,用于将不同的数据映射到 View 上。不同的数据对应不同的适配器,如:
BaseAdapter、ArrayAdapter、CursorAdapter、SimpleAdapter 等。他们能够将数组、指针指向数 据、Map等数据映射到View 上。
(3)数据:具体的映射数据和资源,可以是字符串,图片等。通过适配器,这些数据将会被实现到 ListView
上。
2 ListView 的绘制过程
public abstract class BaseAdapter - 抽象类,继承它需要实现较多的方法。所以就具有较高的灵活性,
实现了 ListAdapter和SpinnerAdapter。
BaseAdapter 需要重写的方法如下:
(1) getCount() ; 用于获得当前列表的数据数量
(2) getItem(int position) 取得当前数据, position 是指第几个
(3) getItemId(int position) 取得 position 的数据项的ID
(4) getView(int position,View convertView, ViewGroup parent)
其中 position 是指元素的下标,可以根据这个 position 得到当前的 item 的元素。
convertView 这个是指将已经加载好的布局进行缓存
ListView 在开始绘制的时候,系统首先调用 getCount() 函数,得到 listView 的长度,然后根据这个长度,
调用 getView() 逐行绘制每一行。如果你的 getCount() 返回的是0时,列表将不显示,同样会返回1,就只显示一行。
前几篇介绍了设计模式的特性并且详细讲解了4种创建型模式,创建型模式是负责如何产生对象实例的,接下来讲讲结构型模式。结构型模式是解析类和对象的内部结构和外部组合,通过优化程序结构解决模块之间的耦合问题。