【Anroid】第9章 列表視圖(1)--ListView相關類及其適配器,anroid--listview

來源:互聯網
上載者:User

【Anroid】第9章 列表視圖(1)--ListView相關類及其適配器,anroid--listview

分類:C#、Android、VS2015;

建立日期:2016-02-18 一、簡介

列表視圖(ListView)是Android應用程式中使用最頻繁的UI組件,從無處不在短菜單選項列表到冗長的連絡人或internet收藏夾列表……都會用它來實現。

ListView控制項的用法非常靈活,既可以使用內建的視圖呈現基本的樣式,也可以用自訂視圖呈現各種特殊的視覺效果。

要完全掌握Android提供的ListView控制項的用法,需要解決下面的問題:

(1)如何用Android內建的視圖呈現列表視圖中的每一項

(2)如何?不同的適配器類。

(3)如何用自訂的視圖呈現列表視圖中每一項的外觀。

(4)如何讀取SQLite資料庫填充清單項目。

(5)ListView效能最佳化以及活動生命週期對ListView的影響。

ListView控制項要求提供一個適配器(Adapter)來描述每一行的視圖格式。在Android應用程式中,既可以直接使用Android內建的適配器,也可以建立自訂的適配器。

實際上,在前面的章節中,我們已經多次使用ListView了,只不過這一章再將其系統地介紹一下它的基本用法而已。

1、ListView相關類

ListView中的每一行都有自己的View。該View可能是在Android.Resources中定義的內建視圖(built-in views),也可能是你自訂的視圖。每一行既可以使用相同的View,也可以使用不同的View。

是呈現ListView時需要使用的主要類,學習這一章的內容之前,最好先仔細看一下各個類之間的繼承關係:

(1)ListView

UI元素,用於呈現一系列可滾動的清單項目。在手機上,如果希望讓清單項目佔用整個螢幕,可讓活動頁直接繼承自ListActivity類而不是繼承自Activity類。如果不希望讓這些清單項目佔用整個螢幕,可在布局頁中添加一個或多個ListView來呈現。

(2)View

ListView上下文要求每行都必須提供一個View,這些View可以是任何UI元素。

2、ListView適配器類

下面列出這些視圖適配器的含義及其應用場合。

(1)BaseAdapter類

BaseAdapter是所有適配器的基類,該類實現了將ListView綁定到資料來源的準系統。當視圖中的元素內容是動態或者不是事先確定的,可以用繼承自BaseAdapter的類去實現。

(2)BaseAdapter<T>類--最常用

在實際項目中,很多時候應用程式一般都有自己的業務實體類,而不僅僅是字串的集合。為了擴充這些功能,大部分情況下都是用繼承自BaseAdapter<T>的類來實現自訂的適配器。

用繼承自BaseAdapter<T>的類來實現自訂的適配器是建議的實現方式。

(3)ArrayAdapter類

除了BaseAdapter類以外,安卓系統還內建了ArrayAdapter類。不過,用C#編寫Android程式時,一般很少用它來實現。

(4)ArrayAdapter<T>類

對於多列資料項目,除了用繼承自BaseAdapter<T>類來實現以外,還可以用自訂的繼承自ArrayAdapter<T>的泛型類來呈現,不過,這種用法在C# 編程中並不多見,最常用的還是用繼承自BaseAdapter<T>類來實現。

(5)ListActivity類

安卓系統內建了ListActivity類,在活動頁中,也可以直接讓自訂的活動繼承自ListActivit而不是繼承自Activity,此方式不需要自訂布局,適用於比較簡單的情況。

ListActivity會自動建立列表視圖,並公開一個ListAdapter屬性,擴充類通過該屬性,即可呈現行視圖。 二、本章樣本主介面

1、運行

2、MainActivity.cs檔案中對應的代碼

chItems.Add(new Chapter(){    ChapterName = "第9章 列表視圖",    ChapterItems = new ChItem[]    {        new ChItem { type=typeof(ch0901BuildInViewsMain), Title="例9-1 內建行視圖的分類", Desc = "示範如何呈現Android內建的各種行視圖" },        new ChItem { type=typeof(ch0902Main), Title="例9-2 自訂視圖", Desc = "示範如何自訂行視圖" },    }});

聯繫我們

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