2022年2月1日 星期二

Android Studio - ListView 基本介紹(二十七)

Android Studio - ListView 基本介紹(二十七):

ListView(列表)是開發 Android 中常用元件之一,它能把數據用列表方式顯示出來,而 ListView 必須利用 Adapter 將資料載入,Adapter 是負責管理 ListView 每一列的資料與畫面,由於 ListView 的編程簡單,對於一些簡單輕量級資料的顯示是可以應付自如。

Android Studio ListView 顯示資料內容
操作系統:Windows 7 64-bit 版本
開發環境:Android Studio 4.0.1 版本
原程式:C:\Development\Development_Android\Android_Project\DIY-Android-007-09 ListView Basic
程式:C:\Development\Development_Android\Android_Project\DIY-Android-007-09 ListView Basic

Data Source + Aapter + ListView的處理資料結構
ListView 是 AdatpterView 的子類,作為資料的容器需要一個能為之處理資料以及畫面的 ListAdapter。Adatper 是作為 AdapterView 與資料間的橋樑,它能為每一筆資料製作一個畫面 ( View ) ,並創建一個視圖表示每個數據項。而常見 ListAdapter 的次類別有 ArrayAdapter、CursorAdapter、SimpleAdapter、SimpleCursorAdapter 和 BaseAdapter,其繼承關係如下圖所示。

Adatpter 繼承結構圖
Adapter 的類型:

符號

描述

ArrayAdapter

將陣列的值包裝成清單項目,提供給 Adapter,清單只能顯示一行文字。

SmipleAdapter

List 集合的值包裝成列表項目。可以自訂各種效果,功能強大。

SmipleCursorAdapter               

輸入資料是由資料庫(SQLite)查詢的 Cursor(資料庫的游標物件)結果時使用,與 SmipleAdapter 類似,只不過它需將 Cursor 的欄位與元件ID 對應,直接將資料庫的內容以清單的方式展現出來。

BaseAdapter

是一個抽象的類別,繼承它需要較多的客製化(custom),通常它可以對各列表項進行最大限度的定制,也具有很高的靈活性。


常見 ListAdapter 次類別的使用:
  • ArrayAdapter:輸入資料為陣列或是 List 集合,ArrayAdapter 較為簡單易用,但每個列表項只能是 TextView,功能實現的局限性非常大。
  • SimpleAdapter:輸入資料為表格時(List< ? extends Map< String , ? >>),用於將 XML 中控制項綁定作為清單項的資料來源,可對每個列表項進行定制(自訂佈局),能滿足大多數開發的需求場景,靈活性較大。
  • SimpleCursorAdapter:輸入資料是由資料庫(SQLite)查詢的Cursor時,將列從光標映射到 XML 文件中定義的 TextViews 或 ImageViews 的簡單適配器。可以指定所需的列、要顯示列的視圖以及定義這些視圖外觀的 XML 文件。綁定分兩個階段進行。
  • BaseAdapter:需完整的客製化(Customization),可自訂 ListView,通用使用於被擴展。擴展 BaseAdapter 可以對各個列表項進行最大程度的定制

ListView 屬性:

描述

android:id

這是唯一標識的布局的ID

android:divider

這是可拉伸或顏色列表項的繪製。

android:dividerHeight

這指定分頻器的高度。這可能是px, dp, sp, in mm

android:entries

指定引用數組的資源,將用於填充ListView

android:footerDividersEnabled

當設置為false,在ListView將不繪製每個頁腳視圖之前的分隔。默認值是true

android:headerDividersEnabled

當設置為false,在ListView將不繪製每個標題視圖之後的分隔。默認值是true


BaseAdapter 抽象類別的常用函式:

描述

getCount()

取得item的數量,通常數量就是從建構子傳入的陣列或是集合大小

getItem(int position)

取得 ListView 列表於 position 位置上的 Item

getItemId(int position)

取得 ListView 列表於 position 位置上的 Item id

getView(int position, View convertView, ViewGroup parent)

設定與回傳 convertView 作為顯示在這個 position 位置的 Item View


參考網址:
※ Android Developers - ListView

2022年 2月 1日(Tue)天氣報告
氣溫:37.0°F / 3.0°C @ 07:00
風速:每小時 6公里
降雨機會:9%
相對濕度:百分之 83%
天氣:多雲
※ 農曆新年快樂!身體健康!萬事如意!世界和平!

沒有留言:

張貼留言