天天看點

listview擴充卡與加載過程詳解

在android開發中Listview是一個很重要的元件,它以清單的形式根據資料的長自适應展示具體内容。

<b>Listview</b><b>由以下三個元素組成:</b>

Ø  View:用來展示清單,通常是一個xml所指定的。

Ø  擴充卡:把不同的資料映射到view上,不同的資料對應不同的擴充卡,如ArrayDdapter,CursorAdapter,SimpleAdapter等,他們能偶将數組,指針指向的資料,Map等資料映射到View上。

通過listviiew的setadapter方法可以設定其擴充卡

setAdapter方法的參數是ListAdapter,擴充卡可以為以下八種類型:

ArrayAdapter最為簡單,隻能展示一行字。

SimpleAdapter有最好的擴充性,可以自定義出各種效果。

SimpleCursorAdapter可以認為是SimpleAdapter對資料庫的簡單結合,可以友善的把資料庫的内容以類表的形式展示出來。

以上三種擴充卡都繼承自BaseAdapter,繼承BaseAdapter之後,需要重寫以下四個方法:getCount,getItem,getItemId,getView。

Ø  資料:具體的将被映射的資料和資源,如字元串,圖檔,基本元件等,通過擴充卡,這些資料将會被顯示到ListView上.所有的資料和資源要顯示到ListView上都通過擴充卡來完成。

<b>ListView</b><b>繪制的過程:</b>

首先,系統在繪制ListView之前,将會先調用getCount方法來擷取Item的個數。之後每繪制一個 Item就會調用一次getView方法,在此方法内就可以引用事先定義好的xml來确定顯示的效果并傳回一個View對象作為一個Item顯示出來。也正是在這個過程中完成了擴充卡的主要轉換功能,把資料和資源以開發者想要的效果顯示出來。也正是getView的重複調用,使得ListView的使用更 為簡單和靈活。這兩個方法是自定ListView顯示效果中最為重要的,同時隻要重寫好了就兩個方法,ListView就能完全按開發者的要求顯示。而 getItem和getItemId方法将會在調用ListView的響應方法的時候被調用到。是以要保證ListView的各個方法有效的話,這兩個方 法也得重寫。比如:沒有完成getItemId方法的功能實作的話,當調用ListView的getItemIdAtPosition方法時将會得不到想 要的結果,因為該方法就是調用了對應的擴充卡的getItemId方法。

本文轉自HDDevTeam 51CTO部落格,原文連結:http://blog.51cto.com/hddev/645467,如需轉載請自行聯系原作者