Android UI設計(7):ListView 控制元件與 Adapter 介面卡

發表於2015-10-10

ListView

ListView是最常用,使用最多的控制元件,首先我們來看一下ListView是怎樣顯示資料的。
在佈局檔案中新增ListView控制元件:

現在並沒有向控制元件中新增任何資料,控制元件佈局顯示如下:

10-10-1

從圖片中我們可以看出,ListView的佈局是由一條一條的Item組成的,這每一個Item又是一個View。我們通過Adapter介面卡這個橋樑將View新增到ListView中。那麼我們來看一下到底什麼是Adapter。

Adapter

An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set.

一個Adapter是AdapterView檢視與資料之間的橋樑,Adapter提供對資料的訪問,也負責為每一項資料產生一個對應的View。
每一項資料產生對應的View之後,然後將View新增到ListView之中。

我們來舉例說明一下:我們的手機通訊錄就是一個簡單的ListView。通訊錄中有一條一條的聯絡人,每一個聯絡人都顯示了相應的資訊。現在通訊錄比較簡單,一般情況下只顯示頭像和姓名,以前還會顯示手機號。每一條聯絡人的顯示方式又是一個View。Adapter介面卡將我們的資訊(頭像和姓名)根據一定的格式適配到每個View中,然後再將View新增到ListView中。大家根據這個例子可能對ListView控制元件和Adapter介面卡以及他們之間的關係有了更好的理解了。

在下一節中我們將會詳細的講三種常用的介面卡 ArrayAdapter,SimpleAdapter以及自定義Adapter在ListView中的使用。

ListView中的MVC設計模式

補充一點:ListView是採用MVC設計模式的,通過上面瞭解Adapter的作用,我們可以更好的理解這種模式。

MVC設計模式:
M是指model,模型或者資料,在ListView中是指新增到View中的資料;
V是指View,檢視,也就是我們在ListView中的每一條Item的顯示形式,也就是我們將資料以什麼樣的View顯示在ListView中;
C是Control,控制,這個可以理解為是當前的Activity,它起到一個協調,控制,總覽全域性的作用。它建立Adapter的物件,將資料新增到View中,然後又將View新增到ListView的每一條Item上。

這就是ListView中MVC設計模式的使用。在下一節中,通過ArrayAdapter的使用我們將會更好的理解這種模式。

相關文章