Android ListView理解,BaseAdapter,ListView 的adapter用法和理解

來源:互聯網
上載者:User
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.