【Android】ListView 進階用法 BaseAdapter

前言

如果只是簡單的清單呈現可以利用ArrayAdapter、SimpleCursorAdapter、SimpleAdapter來達成你的目的,但如果要做到更複雜清單呈現就必須用BaseAdapter來客製化ListView,利用BaseAdapter能更彈性的控制ListView 每個Item的內容與樣式。

  • ArrayAdapter – ListView 簡易用法
  • SimpleCursorAdapter
  • SimpleAdapter – ListView 進階用法 -,簡易客製化ListView Item樣式
  • BaseAdapter (此篇) – ListView 進階用法,完整客製化ListView Item樣式

針對實作BaseAdapter這邊來個簡單步驟說明:

  1. 建立一個ListView Item的Layout
  2. 實作BaseAdapter,根據資料來改變ListView Item
  3. 結果,取得清單資料丟到BaseAdapter

1.建立ListItem Layout

在res/layout建立一個ListView Itme的樣板,命名為style_listview.xml(自行定義),可依照自求需求設計,這邊就簡單拉兩個TextView來實作。

2.實作BaseAdapter

這邊就是我們的重頭戲,先建立一個java類別命名為ViewAdapter.java(自行定義),將此類別繼承BaseAdapter,繼承BaseAdapter後會出現幾個方法

在開始實作BaseAdapter前請先想一下架構,我們ListView要input什麼樣的資料形態例如ArrayList、Map、Cursor…等,因為這關係到你的後需處理,以下範例input就用二維陣列來呈現,內容大概是顯示六都及政府所在如下。

  • 臺北
    • 信義區
  • 新北
    • 板橋區
  • 桃園
    • 桃園區
  • 臺中
    • 西屯區
  • 臺南
    • 安平區
    • 新營區
  • 高雄
    • 苓雅區
    • 鳳山區

想好架構後就直接看程式碼如何實作

3.結果

最後實作主程式把資料塞到BaseAdapter,看看執行結果如何

結果畫面

 

發表迴響