簡單瞭解Adapter
一般在ListView和 GridView中用於數據的適配與處理。有點像iOS中tableview和collectionview的cell。
如上圖,Adapter相當於是數據與ListView和GridView的中間橋樑,數據源的形式不同就要求ListView和GridView所展示數據的格式也不同,可以使用系統自帶適配器,如ArrayAdapter、SimpleAdapter直接適配數據,也可以繼承與BaseAdapter自定義複雜的數據源。
數據適配器正是建立了數據源與ListView和GridView之間的適配關係,將數據源轉換爲ListView和GridView能夠顯示的數據格式,從而將數據的來源與數據的顯示進行解耦,降低程序的耦合性。
系統Adapter的使用
Android自帶的Adapter有很多的接口、抽象類、子類可以使用,常用的有:ArrayAdapter、SimpleAdapter、BaseAdapter。
1. 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的參數說明:
第一個參數:上下文對象
第二個參數:數據源是含有Map的一個集合
第三個參數:每一個item的佈局文件
第四個參數:new String[]{}數組,數組的裏面的每一項要與第二個參數中的存入map集合的的key值一樣,一一對應
第五個參數:new int[]{}數組,數組裏面的第三個參數中的item裏面的控件id。
代碼示例:
效果:
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效果: