版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 第五章:高級控件 高級控件的簡介與適配器相關控件其他與視圖相關的按件進度條與滑動塊本章小結目錄一、高級控件簡介 通過前面章節(jié)的學習,我們學習了使用Android一些常用的基本控件,以及使用這些基本控件能夠按照自己程序的需要在界面上進行排列,設計出一些簡單的界面。然后要設計出一些復雜,功能強大的高級控件,如列表視圖、滾動視圖、進度條等。Adapter適配器Adapter使用緣由:Adapter 控件通常包含多個格式相同的列表,對于這些列表而言,使用setText()、setTextColor()等方法將幾十到幾百行格式相同的內(nèi)容進行簡單的設置是不可取的。所以事先把要加載的內(nèi)容放入到一個列表中,
2、然后把這個列表放到 Adapter 中對各項資源統(tǒng)一進行設置。這個存放 Adapter 控件的內(nèi)容列表稱為 Adapter(適配器)。Adapter 可以理解為一個顯示器,它可以把復雜的數(shù)據(jù)按人們?nèi)菀捉邮艿姆绞竭M行顯示。Android 提供的常用 Adapter 對象有 ArrayAdapter、SimpleAdapter、SimpleCursorAdapter、BaseAdapter 等,開發(fā)者可以根據(jù)自己的需要繼承 Adapter 類自定義Adapter 的子類。二、與適配器相關控件Android提供的常用Adapter對象: 類型 特點 ArrayAdapter:默認情況下只顯示文本信息
3、,如果要顯示其它的控件時,一般都需要重寫getView()方法。通常將一個數(shù)組或集合放在ArrayAdapter中。 SimpleAdapter:它可以將靜態(tài)的數(shù)據(jù)關聯(lián)到XML布局文件中的某個View控件上,可以將List集合中多個對象包裝成多個列表項。SimpleCursorAdapter:與SimpleAdapter類似,只是用于包裝Cursor提供的數(shù)據(jù)。 BaseAdapter:一般用于擴展,擴展BaseAdapter可以對各列表項進行最大限度的定制。表5-1 各類適配器特點AutoCompleteTextView 根據(jù)用戶輸入的少量內(nèi)容,匹配指定的數(shù)據(jù)源時,就以列表的形式展示數(shù)據(jù)源中
4、符合要求的數(shù)據(jù)內(nèi)容供用戶選擇,減少用戶的輸入內(nèi)容。 常用屬性 含義android:completionThreshold設置彈出的列表中的最小字符個數(shù),即用戶要至少輸入多少個字在匹配數(shù)據(jù)源時才能彈出列表,默認是2。android:completionHint設置下拉列表下面的說明性文字。android:dropDownHeight設置下拉列表高度。android:dropDownWidth設置下拉列表寬度。android: popupBackground設置下拉列表的背景。android:dropDownSelector設置下拉列表被選中的行的背景。android:dropDownHorizo
5、ntalOffset設置下拉列表與文本框之間的水平偏移像素,默認下拉列表與文本框左對齊。android:dropDownVerticalOffset設置下拉列表與文本框之間的垂直偏移像素,默認下拉列表是緊跟著文本框的。表5-2 AutoCompleteTextView常用屬性【例 5.1】設計如圖 5-1 所示的顯示效果。說明: 在下拉列表的文本框中輸入一個“賀”字,彈出所有開頭為“賀”的選項。圖5-1 AutoCompleteTextView效果 SpinnerSpinner(下拉列表)位于android.widget包下,類似于網(wǎng)頁中常見的下拉列表框,它主要提供一系列可供用戶選擇的列表項,
6、可以減少用戶輸入而找到想要的結果。它的用法與AutoCompleteTextView非常相似,都需要指定一個數(shù)據(jù)源。Spinner有兩種數(shù)據(jù)源方式:在代碼中使用數(shù)組或集合來形成數(shù)據(jù)源。使用XML文件中來形成數(shù)據(jù)源,然后為Spinner指定android:entries屬性即可,不需要編寫代碼直接完成下拉列表的功能。Spinner常用方法說明 方 法 說明setPrompt(String)設置下拉列表的提示信息setSelection(int,boolean)設置Spinner在初始化自動調(diào)用一次OnItemSelectedListener()事件時的下拉項,如果禁用首次調(diào)用,使用setSele
7、ction(0,true)getSelectedItem()獲取用戶下拉列表時選擇的數(shù)據(jù)getItemAtPosition(int)獲取下拉列表中指定位置的數(shù)據(jù)表5-3 Spinner常用方法說明【例 5.2】在代碼中使用數(shù)據(jù)源的下拉列表顯示效果圖5-2 Spinner效果1圖5-3 Spinner效果2ListView1. 使用當前的Activity直接繼承ListActivity,它有一個自帶的ListView部分方法的Activity,在ListView控件實例化時不再需要使用findViewById方法,而是直接使用getListView方法來對ListView進行接下來的操作。在獲取
8、ListView時,布局文件中的ListView的id必須為“andriod:id/list”。其實現(xiàn)比較簡單,在此不再詳細介紹。2. 使用布局文件添加一個ListView實現(xiàn)ListView的效果有兩種形式:讓當前的Activity直接繼承ListActivity;在布局文件中添加一個ListView,然后為ListView設置需要顯示的內(nèi)容(Adapter)。ListView常用屬性ListView 以列表的形式顯示數(shù)據(jù)內(nèi)容,并且可以根據(jù)數(shù)據(jù)的長度自適應屏幕來顯示,ListView 的常用屬性,如表 5-7 所示。 屬 性 說 明android:divider設置分割線android:di
9、viderHeight設置分割線高度android:listSelector設置ListView item選中時的顏色android:scrollbars設置ListView的滾動條android:fadeScrollbars設置為true實現(xiàn)滾動條的自動隱藏和顯示表5-4 ListView常用屬性ListView、Adapter與Data Source三者關系 ListView是顯示內(nèi)容的地方,Adapter規(guī)定顯示內(nèi)容的樣式,DataSource提供數(shù)據(jù)源。減少了編寫復雜顯示樣式的代碼。圖5-4 ListView、 Adapter與Data Source三者關系使用布局文件添加一個 Lis
10、tView【例 5.3】顯示賀州各個地區(qū)的地名,設計如圖 5-5 所示,使用 ArrayAdapter 實現(xiàn)顯示效果?!纠?5.4】設計如圖 5-6,圖5-7 所示的賀州旅游新聞列表。使用 BaseAdapter 實現(xiàn)顯示效果。圖5-5 ListView效果圖5-6新聞列表效果圖5-7新聞點擊效果GridViewGridView是一個可以提供讓人選擇的二維選項網(wǎng)格,程序員可以控件網(wǎng)格列的寬度與數(shù)量;行的數(shù)量是基于適配器提供的選項數(shù),在保證有效顯示的條件下動態(tài)確定?!纠?5.5】設計點擊各個圖片可以看到放大的圖。 GridView常用屬性: 屬 性 說 明android:numColumn設置G
11、ridView的列數(shù)android:columnWidth設置GridView的列寬度android:stretchMode設置GridView的縮放模式android:verticalSpacing設置兩行之間的間距android:horizontalSpacing設置兩列之間的間距表5-5 GridView常用屬性三、其他與視圖相關的按件ScrollView ScrollView是一種可供用戶滾動的層次結構布局容器,允許顯示比實際多的內(nèi)容。ScrollView繼承自FrameLayout,是一種幀布局,意味需要在其上放置有自己滾動內(nèi)容的子元素。子元素可以是一個復雜對象的布局管理器。通常用的
12、子元素是垂直方向的LinearLayout,顯示在最上層的垂直方向可以讓用戶滾動的箭頭。TabHost TabHost繼承自FrameLayout,是一種幀布局。它是選項卡的封裝類,用于創(chuàng)建選項卡窗口。使用TabHost時,Activity界面的一部分是選項卡,點擊選項卡就會切換到視圖的另一部分并顯示其它內(nèi)容。使用TabHost要注意的幾個地方:XML文件中使用TabWidget時,它的android:id要設置為android:id/tabs。如果使用TabActivity,必須把TabHost的android:id要設置為android:id/tabhost。如果不使用TabActivit
13、y,那么在Java代碼中要調(diào)用TabHost的addTab()方法之前先調(diào)用setUp()方法。在構建選項卡視圖時,要用到以下幾個控件:TabHost用于容納選項卡按鈕和選項卡內(nèi)容。TabWidget用于容納選項卡按鈕,每個按鈕由文本及可選的圖標的組成。FrameLayout用于容納選項卡的內(nèi)容,每塊內(nèi)容都是FrameLayout的一個子類。TabHost常用方法:setUp():表示當TabHost實例不是通過TabActivity獲取時調(diào)用。addTab():表示添加一個tab頁面。newTabSpec():表示獲取一個新的tab頁面。setCurrentTab():表示設置當前要顯示的t
14、ab頁面。setOnTabChangedListener():表示設置tab頁面發(fā)生改變時的監(jiān)聽。TabSpec有兩個重要方法: setContent():表示設置選項卡要包含什么內(nèi)容,一般要傳入傳入相應視圖的android:id。setIndicator():表示設置選項卡按鈕的標題。【例 5.6】通過 TabHost 設置新聞、咨詢、地圖三塊內(nèi)容。點擊選項卡時新聞、咨詢、地圖三塊內(nèi)容可自由切換。圖5-8運行效果圖5-9點擊效果 ViewPagerViewPager能夠?qū)崿F(xiàn)最基本的頁面左右滑動功能,使用它時和選擇控件一樣需要適配器?!纠?5.7】通過 ViewPager 設置可以滑動的 5
15、張圖片內(nèi)容?;瑒訒r,在靠近底部的位置顯示當前是滑動到了第幾張圖片。圖5-10 運行效果圖5-11 滑動效果ViewPager使用步驟:(1)在布局文件中添加ViewPager控件。(2)初始化要顯示的頁面。(3)創(chuàng)建ViewPager對象。(4)將適配器添加到ViewPager中。ViewPager常用方法:setCurrentItem():表示設置當前顯示的頁面。setAdapter():表示添加適配器。setOnPageChangeListener():表示添加頁面切換的監(jiān)聽。四、進度條與滑動塊ProgressBar(進度條)是一種向用戶顯示進度的最好表現(xiàn)方式。屬性說明android:ma
16、x設置進度條的最大值android:progress設置第一層進度條的初始值android:secondaryProgress設置第二層進度條的初始值表5-6 ProgressBar常用屬性進度條的常用方法:getMax():獲取進度條的最大值。getProgress():返回進度條當前進度。getSecondProgress():返回進度條當前次要進度。incrementProgressBy():指定增加的進度,每次推進的步伐。圖5-12 運行效果。SeekBarSeekBar是ProgressBar的擴展,在其基礎上增加了一個可拖動的滑塊,即允許用戶控制進度,一般用于調(diào)節(jié)音量與亮度等場合。RatingBarRat
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2021-2026年中國特種閥門市場供需現(xiàn)狀及投資戰(zhàn)略研究報告
- 2025聯(lián)營合同(半緊密型) 管理資料
- 2025建安公司ERP系統(tǒng)與中國長安財務共享中心系統(tǒng)集成開發(fā)合同
- 課題申報參考:立德樹人視域下大學英語教材育人效果評估與機理研究
- 課題申報參考:科技創(chuàng)新、現(xiàn)代化產(chǎn)業(yè)體系與高水平對外開放研究
- 遠程學習中的學生自我管理能力
- 教育科技助力下的團隊游戲化學習模式
- 科技驅(qū)動下的學校建筑設計新思路
- 跨領域?qū)嶒灲虒W合作模式探索
- 江西省吉安市2024-2025學年七年級上學期1月期末綜合道德與法治試題(含答案)
- 《醫(yī)院財務分析報告》課件
- 2025老年公寓合同管理制度
- 2024-2025學年人教版數(shù)學六年級上冊 期末綜合卷(含答案)
- 2024中國汽車后市場年度發(fā)展報告
- 感染性腹瀉的護理查房
- 天津市部分區(qū)2023-2024學年高二上學期期末考試 物理 含解析
- 《人工智能基礎》全套英語教學課件(共7章)
- GB/T 35613-2024綠色產(chǎn)品評價紙和紙制品
- 2022-2023學年五年級數(shù)學春季開學摸底考(四)蘇教版
- 【螞蟻?!?024中國商業(yè)醫(yī)療險發(fā)展研究藍皮書
- 軍事理論-綜合版智慧樹知到期末考試答案章節(jié)答案2024年國防大學
評論
0/150
提交評論