Android 開發:(八)數據適配器 Adapter 篇

簡單瞭解Adapter

一般在ListView和 GridView中用於數據的適配與處理。有點像iOS中tableview和collectionview的cell。

數據源、適配器、ListView關係圖
如上圖,Adapter相當於是數據與ListView和GridView的中間橋樑,數據源的形式不同就要求ListView和GridView所展示數據的格式也不同,可以使用系統自帶適配器,如ArrayAdapter、SimpleAdapter直接適配數據,也可以繼承與BaseAdapter自定義複雜的數據源。
數據適配器正是建立了數據源與ListView和GridView之間的適配關係,將數據源轉換爲ListView和GridView能夠顯示的數據格式,從而將數據的來源與數據的顯示進行解耦,降低程序的耦合性。

系統Adapter的使用

Android自帶的Adapter有很多的接口、抽象類、子類可以使用,常用的有:ArrayAdapter、SimpleAdapter、BaseAdapter。

1. ArrayAdapter:這個適配器使用有一定的侷限性,只能顯示一行文本數據:

ArrayAdapter
ArrayAdapter的參數說明:
第一個參數:context上下文對象
第二個參數:每一個item的樣式,可以使用系統提供,也可以自定義就是一個TextView
第三個參數:數據源,要顯示的數據

系統提供的item的樣式:
simple_list_item1:單獨的一行文本框
simple_list_item2:有兩個文本框組成
simple_list_item_checked:每項都是由一個已選中的列表項
simple_list_item_multiple_choice:都帶有一個複選框
simple_list_item_single_choice:都帶有一個單選框

這個比較簡單,就是顯示純文本,沒有圖片。

2. SimpleAdapter:在ArrayAdapter基礎上增加了圖片的適配:

SimpleAdapter
SimpleAdapter的參數說明:
第一個參數:上下文對象
第二個參數:數據源是含有Map的一個集合
第三個參數:每一個item的佈局文件
第四個參數:new String[]{}數組,數組的裏面的每一項要與第二個參數中的存入map集合的的key值一樣,一一對應
第五個參數:new int[]{}數組,數組裏面的第三個參數中的item裏面的控件id。

代碼示例: SimpleAdapter代碼示例
效果:
SimpleAdapter效果圖

BaseAdapter的使用

1. BaseAdapter: 常用,兼容上述兩種模式。

該適配器也是系統自帶,但是使用方式一般是通過繼承該類來實現BaseAdapter的四個方法,相當於自定義。
在這裏插入圖片描述

需要實現以下四個方法:

1. public int getCount(): 適配器中數據集的數據個數;
2. public Object getItem(int position): 獲取數據集中與索引對應的數據項;
3. public long getItemId(int position): 獲取指定行對應的ID
4. public View getView(int position,View convertView,ViewGroup parent): 獲取每一行Item的顯示內容。

代碼示例實現上述SimpleAdapter效果:
 BaseAdapter代碼示例

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章