Android 中 ListView 与 Adapter 的关系

leverage00 2016-06-23

1  ListView 与 Adapter 的关系


Android 中 ListView 与 Adapter 的关系

ListView 是 Android 开发过程中较为常见也是非常重要的组件之一,它可以将数据以列表的形式展现出来。

我们的手机应用常用的软件都有 ListView 如手机联系人列表,来电号码列表等。

一个ListView主要是由以下三个元素组成:

(1)View:即是ListView 的定义,一般在 XML 文件中定义。

(2)Adapter:适配器,用于将不同的数据映射到 View 上。不同的数据对应不同的适配器,如:

         BaseAdapter、ArrayAdapter、CursorAdapter、SimpleAdapter 等。他们能够将数组、指针指向数       据、Map等数据映射到View 上。

(3)数据:具体的映射数据和资源,可以是字符串,图片等。通过适配器,这些数据将会被实现到 ListView

上。

2 ListView 的绘制过程


                            Android 中 ListView 与 Adapter 的关系

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,就只显示一行。


 


 

相关推荐