




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
張霞深圳職業(yè)技術學院Android應用開發(fā)案例教程(AndroidStudio第二版)
0103020405AndroidUI設計圖像和動畫數(shù)據(jù)存儲廣播Broadcast與服務Service媒體播放與錄制Activity與多個用戶界面07網(wǎng)絡編程技術書目錄06第2章Activity與多個用戶界面Android應用開發(fā)案例教程(AndroidStudio版第二版)2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對話框2.7菜單設計2.1什么是ActivityAndroid四大組件Activity、Service、Broadcast、ContentProvider。其中最重要的是Activity,它是應用程序通過屏幕給用戶提供交互的Android組件。Activity是Android程序中最基本的組件,顯示可視化的用戶界面,接收與用戶交互所產(chǎn)生的界面事件。Android系統(tǒng)自帶了一套核心應用程序,應用程序包括電話撥號程序、短信程序、日歷、音樂播放器、瀏覽器、聯(lián)系人管理程序等,如圖所示。一個Activity代表一個單獨的屏幕,可以添加多個控件,如Button、TextView、EditView等,組成和用戶交互的用戶界面。2.1什么是Activity-÷×+每個Activity都有一個窗口,在上面繪制了程序的用戶界面。這個窗口通常會占滿整個屏幕,但是也可以比屏幕小,或者懸浮在其它窗口上。一個程序一般會由多個Activity結合在一起。每個Activity為了執(zhí)行不同的行為都能跳轉到下一個Activity。Activity是用棧進行管理,當來到一個新的Activity后,此Activity將被加入到Activity棧頂,之前的Activity位于此Activity底部。2.1什么是ActivityActivity生命周期Activity有四種狀態(tài):運行狀態(tài)暫停狀態(tài)停止狀態(tài)銷毀狀態(tài)2.1什么是Activity程序調試LogCatLogCat是用來捕獲系統(tǒng)日志信息的工具,它能捕獲包括Dalvik虛擬機產(chǎn)生的信息、進程信息、ActivityManager信息、Android運行時信息和應用程序信息等。不同類型日志信息級別不一樣,從高到低依次為斷言信息、錯誤信息、警告信息、通告信息、調試信息和詳細信息。Log日志信息Log日志類能夠記錄程序運行過程中的相關信息方法功能描述Log.a()記錄斷言信息Log.e()記錄錯誤信息Log.w()記錄警告信息Log.i()記錄一般提示性信息Log.d()記錄調試信息Log.v()記錄詳細的信息2.1什么是Activity程序跟蹤在AndroidStudio中通過單擊某行代碼左邊的灰色區(qū)域可以在該行設置一個斷點,這樣,當使用Debug方式運行程序時,程序遇到斷點會暫停下來,通過跟蹤程序運行進而了解程序中各變量和流程的執(zhí)行情況。android:name屬性是唯一必須的屬性,它用來指定Activity的類名。<action>節(jié)點用來指定Activity的主入口行為<category>指定了該Activity在應用程序中允許用戶啟動這個Activity。2.1.1啟動Activity要素Activity在使用之前,需要在AndroidManifest文件中,注冊Activity。使用AndroidSDK工具創(chuàng)建新的應用程序,會自動創(chuàng)建Activity的意圖過濾器,默認情況如下:<activityandroid:name=".MainActivity"android:icon="@drawable/app_icon"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name="ent.category.LAUNCHER"/></intent-filter></activity>312通常Activity具體顯示什么是由Layout布局文件中設置的內容來決定的。
布局文件是用xml語言編寫的,是一種可擴展的標記語言。例如
RelativeLayout標簽是相對布局,這個布局中可以放很多控件,這些
控件按照相對位置來進行擺放。再例如TextView有寬度和高度,
文字以及背景顏色等屬性。在Activity的onCreate方法中調用setContentView()方法來指定Activity顯示的內容,也就是指定Layout文件。這種分工把設計用戶界面和編寫Activity代碼這兩件工作很好的劃分開來。2.1.2Activity與布局之間的關系2.1.3Activity與View之間的關系ViewfindViewById()方法用戶界面由View類派生的View對象分層次結構提供。每個View都在Activity的窗口中控制了一個特定的矩形的空間,它們能夠響應用戶的交互操作。在Activity中調用findViewById()方法可以獲取控件的對象,再通過這個對象去設置控件的屬性,隨時修改控件的屬性,包括文字內容、顏色等,以此來修改和改變Layout布局。2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對話框2.7菜單設計創(chuàng)建新項目創(chuàng)建新的Activity
【例2-1】從Activity啟動另一個Activity示例。2.2創(chuàng)建新的Activity2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對話框2.7菜單設計2.3Intent介紹在Android系統(tǒng)中,app通常都由多個界面組成,每個界面都是由Activity控制,這些界面進行跳轉,實際上Activity也在進行跳轉。跳轉時需要用到Intent意圖組件,通過Intent開啟新的Activity。Intent被稱為意圖,是程序中各組件進行交互的一種重要方式,它不僅可以指定當前組件要執(zhí)行的動作,還可以在不同組件之間進行數(shù)據(jù)傳遞。Intent用于啟動Activity、Service以及發(fā)送廣播等(Service和廣播將在后續(xù)章節(jié)講解)。根據(jù)開啟目標組件的方式不同,Intent被分為兩種類型:顯式意圖和隱式意圖。0102032.3.1顯式意圖顯式意圖可以直接通過名稱開啟指定的目標組件,通過其構造方法Intent(ContextpackageContext,Class<?>cls)來實現(xiàn)。第1個參數(shù)Context,表示當前的Activity對象,使用this即可。第2個參數(shù)Class,表示要啟動的目標Activity。通過構造方法創(chuàng)建一個Intent對象,然后將該對象傳遞給Activity的startActivity()方法即可啟動intent。Intentintent=newIntent(Activity01.this,Activity02.class); //創(chuàng)建Intent對象startActivity(intent);
//開啟Activity022.3.2隱式意圖隱式意圖相比顯式意圖來說更為抽象,它并沒有明確指定要開啟哪個目標組件,而是通過指定action和category等屬性信息,系統(tǒng)根據(jù)這些信息進行分析,然后尋找目標Activity。其示例代碼如下:Uriuri=Uri.parse("");Intentit=newIntent(Intent.ACTION_VIEW,uri);startActivity(it);2.3.3Activity之間的跳轉Intent組件是Android系統(tǒng)一種運行時的綁定機制,在Android的應用程序中,不管是頁面切換,還是傳遞數(shù)據(jù)或是調用外部程序,都可能要用到Intent。Intent的屬性有動作(Action)、數(shù)據(jù)(Data)、分類(Category)、類型(Type)、組件(Compent)以及擴展(Extra),其中最常用的是Action屬性。0102例如
:Intent.ACTION_MAIN:應用程序入口。Intent.ACTION_SEND:發(fā)送短信、發(fā)送郵件等。Intent.ACTION_VIEW:顯示數(shù)據(jù)給用戶,如瀏覽網(wǎng)頁、顯示應用、尋找應用等。Intent.ACTION_WEB_SEARCH:從谷歌搜索內容。Intent.ACTION_DIAL:撥打電話。Intent.ACTION_PICK:打開聯(lián)系人列表。
2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對話框2.7菜單設計2.4.1.Bundle類Bundle類是用于為字符串與某組件對象建立映射關系的組件。Bundle組件與Intent配合使用,可在不同的Activity之間傳遞數(shù)據(jù)。Bundle類的常用方法如下。putString(Stringkey,Stringvalue):把字符串用“鍵值對”形式存放到Bundle對象中。getString(Stringkey):獲取指定key的值remove(Stringkey):移除指定key的鍵值對2.4.2應用Intent在不同的Activity之間傳遞數(shù)據(jù)圖2-6應用Intent在Activity界面之間傳遞數(shù)據(jù)
2.4.2應用Intent在不同的Activity之間傳遞數(shù)據(jù)數(shù)據(jù)在不同Activity界面
之間傳遞的效果
【例2-2】應用Intent傳遞數(shù)據(jù)2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對話框2.7菜單設計2.5消息提示類Toast用Toast來顯示幫助或提示消息,該提示消息以浮于應用程序之上的形式顯示在屏幕上。因為它并不獲得焦點,所以不會影響用戶的其他操作,使用消息提示類(Toast)的目的是盡可能不中斷用戶操作,讓用戶看到提示信息。Toast的2個常用方法:makeText(Contextcontext,CharSequencetext,intduration),以特定時長顯示文本內容,參數(shù)text為顯示的文本,參數(shù)duration為顯示的時間show(),輸出提示信息。2.5消息提示類ToastToast類的常用屬性和方法:LENGTH_LONG
提示信息顯示較長時間的常量LENGTH_SHORT提示信息顯示較短時間的常量setGravity(intgravity,intxOffset,intyOffset)設置提示信息在屏幕上的位置View類的常用方法:getView(Viewv)獲得視圖組件的控制addView(Viewv)添加視圖組件2.5消息提示類Toast【例2-3】消息提示類Toast示例本案例將實現(xiàn)按默認方式、自定義方式和帶圖標方式顯示Toast消息提示的效果。將事先準備好的圖標文件icon.jpg復制到資源目錄drawable下,以做提示消息的圖標之用。帶圖標的Toast程序運行效果2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對話框2.7菜單設計2.6對話框對話框是一個有邊框和標題欄的、獨立存在的容器,在應用程序中經(jīng)常使用對話框組件來進行人機交互,用于需要用戶采取行動才能繼續(xù)執(zhí)行的事件。Android系統(tǒng)常用對話框:AlertDialog:消息對話框;ProgressDialog:進度條對話框;DatePickerDialog:日期選擇對話框;TimePickerDialog:時間選擇對話框?!纠?-4】消息對話框示例AlertDialog消息對話框初始化對話框AlertDialog.Builderdialog=
newAlertDialog.Builder(DialogActivity.this);設置對話框的標題setTitle("對話框")設置對話框的圖標setIcon(R.drawable.icon)設置對話框顯示的內容setMessage("消息對話框應用示例")設置對話框的“確定”按鈕setPositiveButton("確定",newokClick())顯示對象框show()【例2-4】消息對話框示例添加視圖View【例2-3】消息提示框組件,添加一個線形布局和一個圖片組件【例2-4】對話框組件,添加一個布局文件login.xml【例2-3】消息提示類示例【例2-4】消息對話框示例LinearLayoutlogin=(LinearLayout)getLayoutInflater().inflate(R.layout.login,null);LinearLayoutlayout=(LinearLayout)toast.getView();Inflate()
將一個XML文件作為布局組件dialog.setView(login);2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對話框2.7菜單設計2.7菜單設計菜單(Menu)由
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 【正版授權】 ISO/IEC 14888-4:2024 EN Information security - Digital signatures with appendix - Part 4: Stateful hash-based mechanisms
- 2025年充電樁充電設備生產(chǎn)許可證申請與審批合同
- 2025年度新能源汽車充電樁建設與運營服務合同-@-3
- 2024 年度中國汽車行業(yè)爭議解決報告
- 2025年度小時工維修養(yǎng)護服務合同范本
- 2025年度知識產(chǎn)權保險產(chǎn)品代理與服務合同
- 2025年心電遙測監(jiān)護儀項目合作計劃書
- 英語-黑龍江省大慶市實驗中學2024-2025學年高一上學期階段考試
- 2025年瀝青試驗儀器項目合作計劃書
- 2025年度走讀生戶外活動安全責任承諾協(xié)議范本
- 色彩發(fā)展的歷史課件
- 學生成長導師制工作手冊
- (2023年最新版)醫(yī)師執(zhí)業(yè)、變更執(zhí)業(yè)、多機構備案申請審核表
- 醫(yī)療器械臨床試驗質量管理規(guī)范培訓課件
- 氣流粉碎機課件
- SJG 74-2020 深圳市安裝工程消耗量定額-高清現(xiàn)行
- GB∕T 41097-2021 非公路用旅游觀光車輛使用管理
- 鐵路乘車證管理辦法
- 軟件項目立項開發(fā)工作流程圖
- 叉車設備點檢表
- 三方聯(lián)測測量記錄表
評論
0/150
提交評論