Android ListView理解

來源:互聯網
上載者:User

其實android的這種機制和ios的UITableView顯示的方式如出一轍,不過理解後,對後面android的深入學習會很有協助。


BaseAdapter ListView是Android開發過程中較為常見的組件之一,它將資料以列表的形式展現出來。一般而言,一個

ListView由以下三個元素組 成:1.View,用於展示列表,通常是一個xml所指定的。大家都知道Android

的介面基本上是由xml檔案負責完成的,所以ListView的界 面也理所應當的使用了xml定義。例如在

ListView中經常用到的“android.R.layout.simple_list_item_1”等, 就是Android系統內部定義好的一個xml

檔案。 

2.適配器,用來將不同的資料對應到View上。不同的資料對應不同的適配器,如ArrayAdapter,CursorAdapter, 

SimpleAdapter等, 他們能夠將數組,指標指向的資料,Map等資料對應到View上。也正是由於適配器的

存在,使得ListView的使用相當靈活,經過適配器的處理後,在 view看來所有的資料對應過來都是一樣

的。3.資料,具體的別映射的資料和資源,可以是字串,圖片等,通過適配器,這些資料將會被現實到 

ListView上。所有的資料和資源要顯示到ListView上都通過適配器來完成。 

系統已有的適配器可以將基本的資料顯示到ListView上,如:數組,Cursor指向的資料,Map裡的資料。

但是在實際開發中這些系統已實現 的適配器,有時不能滿足我們的需求。而且系統內建的含有多選功能

ListView在實際使用過程中會有一些問題。要實現複雜的ListView可以通過繼 承ListView並重寫相應的

方法完成,同時也可以通過繼承BaseAdapter來實現。通過文檔可以看出,ArrayAdapter,CursorAdapter, 

SimpleAdapter都繼承於BaseAdapter。所以通過繼承BaseAdapter就可以完成自己的Adapter,可以將任何

複雜組合的資料和資源,以任何你想要的顯示效果展示給大家。 

繼承BaseAdapter之後,需要重寫以下四個方法:getCount,getItem,getItemId,getView。 

ListView繪製的過程如下:首先,系統在繪製ListView之前,將會先調用getCount方法來擷取Item的個數。

之後每繪製一個 Item就會調用一次getView方法,在此方法內就可以引用事先定義好的xml來確定顯示的

效果並返回一個View對象作為一個Item顯示出來。也 正是在這個過程中完成了適配器的主要轉換功能,

把資料和資源以開發人員想要的效果顯示出來。也正是getView的重複調用,使得ListView的使用更 為簡單

和靈活。這兩個方法是自定ListView顯示效果中最為重要的,同時只要重寫好了就兩個方法,ListView就

能完全按開發人員的要求顯示。而 getItem和getItemId方法將會在調用ListView的回應程式法的時候被調用到。

所以要保證ListView的各個方法有效話,這兩個方 法也得重寫。比如:沒有完成getItemId方法的功能

實現的話,當調用ListView的getItemIdAtPosition方法時將會得不到想 要的結果,因為該方法就是調用了

對應的適配器的getItemId方法

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.