Android學習--ListView

來源:互聯網
上載者:User

標籤:getview   get   資料來源   font   adapter   list   cell   使用   自訂   

這篇文章用於總結自己這兩天學到的安卓的ListView和RecyclerView 的筆記,以及從我這個iOS開發人員的角度去理解和學習這兩個控制項,會比較一下他們個iOS中那些控制項是一致的,可以用來對比的。

 

一:ListView 最簡單的用法

       ListView最簡單的用法無非就是用它寫一個最基本的列表介面,展示的資料也就是我們最基本和常見的單條資料,一步一步的走下去:

        ListView的建立,先說說它的布局的建立,直接代碼了,很簡單的一個ListView的寬、高和id:

     

 

布局檔案建立完之後就是我們的在MainActivity中的註冊了,一些自己理解的注釋都在下面,能協助理解:

 

       看了上面的代碼和注釋,也會知道,我們的重點就在這個適配器,要是我們用系統的ArrayAdapter,我們再通過initFruits方法建立好資料來源之後,用下面的方法:

        ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_list_item_1, data);

        就成功的構造出我們的適配器,這樣就是我們最簡單的ListView。

        在iOS中,(如果你懂iOS)你肯定知道我們的TableView用的很多時候,需要你去自訂Cell,我們下面說的自訂安卓ListView的適配器就是我們iOS中說的自訂Cell,這個才是重點,相信你也知道。

 

二:自訂ListViwe適配器(自訂ListView介面)

        我們在這裡自訂一個叫 FruitAdapter 的適配器,我們看一下這個適配器裡面的內容:

        重點還是看看這個FruitAdapter適配器裡面的getView這個方法,這個方法的具體代碼如下,並且這個方法裡面已經是對ListView進行了最佳化的,看具體的注釋內容:

 

       說說自己理解的這個最佳化的過程:

         一 :  我們利用View對contentView進行了緩衝,判斷要是contentView為空白,就利用LayoutInflater去載入布局,要是這個contentView不為空白,我們就直接重用,其實這裡的重用我相信每個做iOS的都理解,和cell的重用是一個意思。

        二:  我們再看看另一個ViewHolder,這個的作用就是對控制項進行緩衝,因為要是不緩衝的話你每一次getView的時候擷取到的控制項的時候都要進行一次 findViewById方法進行讀取,這樣我們利用這個ViewHolder,就不會每次通過findViewById方法來擷取控制項。

        經過上面兩步的最佳化,這個ListView的運行效率已經非常不錯了!

 

三: ListView的點擊事件

       這個就像你用了TableView的時候,你寫了那麼多cell肯定是能點擊的,我們就說說ListView的點擊事件:

      

 

        我們這裡是簡單的寫了它的點擊事件,讓它彈出一個Toast, 當然這個Toast前面我們也是說過的,我們使用 setOnItemClickListener 為ListView 註冊一個監聽器,當使用者點擊了ListView當中的任何一個子項時候,就會回調onItemClick()方法,這個方法裡面的參數如下,你可以Command + (點擊OnItemClickListener)方法進去看看這個onItemClick裡面的參數,要讓你完全記住怎麼寫,我覺得挺難的,學會看父類的方法是不錯的一個方法:

 

 

Android學習--ListView

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.