ListView ListView是一種用于垂直顯示的列表控件,如果顯示內(nèi)容過多,則會出現(xiàn)垂直滾動條 ListView能夠通過適配器將數(shù)據(jù)和自身綁定,在有限的屏幕上提供大量內(nèi)容供用戶選擇,所以是經(jīng)常使用的用戶界面控件 ListView支持點(diǎn)擊事件處理,用戶可以用少量的代碼實(shí)現(xiàn)復(fù)雜的選擇功能 建立一個“ListViewDemo”程序,包含四個控件,從上至下分別為TextView01、ListView01、 ListView02和 ListView03 ListViewDemo在XML文件中的代碼 在ListViewDemo.java文件中,首先需要為ListView創(chuàng)建適配器,并添加ListView中所顯示的內(nèi)容 第2行代碼通過ID引用了XML文件中聲明的ListView 第7行代碼聲明了適配器ArrayAdapter,第三個參數(shù)list說明適配器的數(shù)據(jù)源為數(shù)組列表 第8行代碼將ListView和適配器綁定 在ListViewDemo.java文件中,首先需要為ListView創(chuàng)建適配器,并添加ListView中所顯示的內(nèi)容 第2行代碼通過ID引用了XML文件中聲明的ListView 第7行代碼聲明了適配器ArrayAdapter,第三個參數(shù)list說明適配器的數(shù)據(jù)源為數(shù)組列表 第8行代碼將ListView和適配器綁定 下面的代碼聲明了ListView子項的點(diǎn)擊事件監(jiān)聽器,用以確定用戶在ListView中,選擇的是哪一個子項 第1行的AdapterView.OnItemClickListener是ListView子項的點(diǎn)擊事件監(jiān)聽器,同樣是一個接口,需要實(shí)現(xiàn)onItemClick()函數(shù)。在ListView子項被選擇后,onItemClick()函數(shù)將被調(diào)用 第3行的onItemClick()函數(shù)中一共有四個參數(shù),參數(shù)0表示適配器控件,就是ListView;參數(shù)1表示適配器內(nèi)部的控件,是ListView中的子項;參數(shù)2表示適配器內(nèi)部的控件,也就是子項的位置;參數(shù)3表示子項的行號 第4行和第5行代碼用于顯示信息,選擇子項確定后,在TextView中顯示子項父控件的信息、子控件信息、位置信息和ID信息 第7行代碼是ListView指定剛剛聲明的監(jiān)聽器 TabHost Tab標(biāo)簽頁是界面設(shè)計時經(jīng)常使用的界面控件,可以實(shí)現(xiàn)多個分頁之間的快速切換,每個分頁可以顯示不同的內(nèi)容 下圖是Android系統(tǒng)內(nèi)置的Tab標(biāo)簽頁,點(diǎn)擊“呼出/接聽鍵”后出現(xiàn),用于電話呼出和查看撥號記錄、聯(lián)系人 Tab標(biāo)簽頁的使用 首先要設(shè)計所有的分頁的界面布局 在分頁設(shè)計完成后,使用代碼建立Tab標(biāo)簽頁,并給每個分頁添加標(biāo)識和標(biāo)題 最后確定每個分頁所顯示的界面布局 每個分頁建立一個XML文件,用以編輯和保存分頁的界面布局,使用的方法與設(shè)計普通用戶界面沒有什么區(qū)別 tab1.xml文件代碼 qtab2.xml文件代碼 qtab3.xml文件代碼 在TabDemo.java文件中鍵入下面的代碼,創(chuàng)建Tab標(biāo)簽頁,并建立子頁與界面布局直接的關(guān)聯(lián)關(guān)系 第8行代碼的聲明TabDemo類繼承與TabActivity,與以往繼承Activity不同,TabActivity支持內(nèi)嵌多個Activity或View 第12行代碼通過getTabHost()函數(shù)獲得了Tab標(biāo)簽頁的容器,用以承載可以點(diǎn)擊的Tab標(biāo)簽和分頁的界面布局。 第13行代碼通過LayoutInflater將tab1.xml文件中的布局轉(zhuǎn)換為Tab標(biāo)簽頁可以使用的View對象 第16行代碼使用addTab()函數(shù)添加了第1個分頁,tabHost.newTabSpec("TAB1")表明在第12行代碼中建立的tabHost上,添加一個標(biāo)識為TAB1的Tab分頁 第17行代碼使用setIndicator()函數(shù)設(shè)定分頁顯示的標(biāo)題,使用setContent()函數(shù)設(shè)定分頁所關(guān)聯(lián)的界面布局 TabDemo示例的運(yùn)行結(jié)果如圖 在使用Tab標(biāo)簽頁時,可以將不同分頁的界面布局保存在不同的XML文件中,也可以將所有分頁的布局保存在同一個XML文件中 第一種方法有利于在Eclipse開發(fā)環(huán)境中進(jìn)行可視化設(shè)計,并且不同分頁的界面布局在不同的文件中更加易于管理 第二種方法則可以產(chǎn)生較少的XML文件,同時編碼時的代碼也會更加簡潔 |
|