Android應(yīng)用開(kāi)發(fā)案例教程課件_第1頁(yè)
Android應(yīng)用開(kāi)發(fā)案例教程課件_第2頁(yè)
Android應(yīng)用開(kāi)發(fā)案例教程課件_第3頁(yè)
Android應(yīng)用開(kāi)發(fā)案例教程課件_第4頁(yè)
Android應(yīng)用開(kāi)發(fā)案例教程課件_第5頁(yè)
已閱讀5頁(yè),還剩34頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

張霞深圳職業(yè)技術(shù)學(xué)院Android應(yīng)用開(kāi)發(fā)案例教程(AndroidStudio第二版)

0103020405AndroidUI設(shè)計(jì)圖像和動(dòng)畫(huà)數(shù)據(jù)存儲(chǔ)廣播Broadcast與服務(wù)Service媒體播放與錄制Activity與多個(gè)用戶界面07網(wǎng)絡(luò)編程技術(shù)書(shū)目錄06第2章Activity與多個(gè)用戶界面Android應(yīng)用開(kāi)發(fā)案例教程(AndroidStudio版第二版)2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應(yīng)用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對(duì)話框2.7菜單設(shè)計(jì)2.1什么是ActivityAndroid四大組件Activity、Service、Broadcast、ContentProvider。其中最重要的是Activity,它是應(yīng)用程序通過(guò)屏幕給用戶提供交互的Android組件。Activity是Android程序中最基本的組件,顯示可視化的用戶界面,接收與用戶交互所產(chǎn)生的界面事件。Android系統(tǒng)自帶了一套核心應(yīng)用程序,應(yīng)用程序包括電話撥號(hào)程序、短信程序、日歷、音樂(lè)播放器、瀏覽器、聯(lián)系人管理程序等,如圖所示。一個(gè)Activity代表一個(gè)單獨(dú)的屏幕,可以添加多個(gè)控件,如Button、TextView、EditView等,組成和用戶交互的用戶界面。2.1什么是Activity-÷×+每個(gè)Activity都有一個(gè)窗口,在上面繪制了程序的用戶界面。這個(gè)窗口通常會(huì)占滿整個(gè)屏幕,但是也可以比屏幕小,或者懸浮在其它窗口上。一個(gè)程序一般會(huì)由多個(gè)Activity結(jié)合在一起。每個(gè)Activity為了執(zhí)行不同的行為都能跳轉(zhuǎn)到下一個(gè)Activity。Activity是用棧進(jìn)行管理,當(dāng)來(lái)到一個(gè)新的Activity后,此Activity將被加入到Activity棧頂,之前的Activity位于此Activity底部。2.1什么是ActivityActivity生命周期Activity有四種狀態(tài):運(yùn)行狀態(tài)暫停狀態(tài)停止?fàn)顟B(tài)銷毀狀態(tài)2.1什么是Activity程序調(diào)試LogCatLogCat是用來(lái)捕獲系統(tǒng)日志信息的工具,它能捕獲包括Dalvik虛擬機(jī)產(chǎn)生的信息、進(jìn)程信息、ActivityManager信息、Android運(yùn)行時(shí)信息和應(yīng)用程序信息等。不同類型日志信息級(jí)別不一樣,從高到低依次為斷言信息、錯(cuò)誤信息、警告信息、通告信息、調(diào)試信息和詳細(xì)信息。Log日志信息Log日志類能夠記錄程序運(yùn)行過(guò)程中的相關(guān)信息方法功能描述Log.a()記錄斷言信息Log.e()記錄錯(cuò)誤信息Log.w()記錄警告信息Log.i()記錄一般提示性信息Log.d()記錄調(diào)試信息Log.v()記錄詳細(xì)的信息2.1什么是Activity程序跟蹤在AndroidStudio中通過(guò)單擊某行代碼左邊的灰色區(qū)域可以在該行設(shè)置一個(gè)斷點(diǎn),這樣,當(dāng)使用Debug方式運(yùn)行程序時(shí),程序遇到斷點(diǎn)會(huì)暫停下來(lái),通過(guò)跟蹤程序運(yùn)行進(jìn)而了解程序中各變量和流程的執(zhí)行情況。android:name屬性是唯一必須的屬性,它用來(lái)指定Activity的類名。<action>節(jié)點(diǎn)用來(lái)指定Activity的主入口行為<category>指定了該Activity在應(yīng)用程序中允許用戶啟動(dòng)這個(gè)Activity。2.1.1啟動(dòng)Activity要素Activity在使用之前,需要在AndroidManifest文件中,注冊(cè)Activity。使用AndroidSDK工具創(chuàng)建新的應(yīng)用程序,會(huì)自動(dòng)創(chuàng)建Activity的意圖過(guò)濾器,默認(rèn)情況如下:<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布局文件中設(shè)置的內(nèi)容來(lái)決定的。

布局文件是用xml語(yǔ)言編寫(xiě)的,是一種可擴(kuò)展的標(biāo)記語(yǔ)言。例如

RelativeLayout標(biāo)簽是相對(duì)布局,這個(gè)布局中可以放很多控件,這些

控件按照相對(duì)位置來(lái)進(jìn)行擺放。再例如TextView有寬度和高度,

文字以及背景顏色等屬性。在Activity的onCreate方法中調(diào)用setContentView()方法來(lái)指定Activity顯示的內(nèi)容,也就是指定Layout文件。這種分工把設(shè)計(jì)用戶界面和編寫(xiě)Activity代碼這兩件工作很好的劃分開(kāi)來(lái)。2.1.2Activity與布局之間的關(guān)系2.1.3Activity與View之間的關(guān)系ViewfindViewById()方法用戶界面由View類派生的View對(duì)象分層次結(jié)構(gòu)提供。每個(gè)View都在Activity的窗口中控制了一個(gè)特定的矩形的空間,它們能夠響應(yīng)用戶的交互操作。在Activity中調(diào)用findViewById()方法可以獲取控件的對(duì)象,再通過(guò)這個(gè)對(duì)象去設(shè)置控件的屬性,隨時(shí)修改控件的屬性,包括文字內(nèi)容、顏色等,以此來(lái)修改和改變Layout布局。2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應(yīng)用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對(duì)話框2.7菜單設(shè)計(jì)創(chuàng)建新項(xiàng)目創(chuàng)建新的Activity

【例2-1】從Activity啟動(dòng)另一個(gè)Activity示例。2.2創(chuàng)建新的Activity2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應(yīng)用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對(duì)話框2.7菜單設(shè)計(jì)2.3Intent介紹在Android系統(tǒng)中,app通常都由多個(gè)界面組成,每個(gè)界面都是由Activity控制,這些界面進(jìn)行跳轉(zhuǎn),實(shí)際上Activity也在進(jìn)行跳轉(zhuǎn)。跳轉(zhuǎn)時(shí)需要用到Intent意圖組件,通過(guò)Intent開(kāi)啟新的Activity。Intent被稱為意圖,是程序中各組件進(jìn)行交互的一種重要方式,它不僅可以指定當(dāng)前組件要執(zhí)行的動(dòng)作,還可以在不同組件之間進(jìn)行數(shù)據(jù)傳遞。Intent用于啟動(dòng)Activity、Service以及發(fā)送廣播等(Service和廣播將在后續(xù)章節(jié)講解)。根據(jù)開(kāi)啟目標(biāo)組件的方式不同,Intent被分為兩種類型:顯式意圖和隱式意圖。0102032.3.1顯式意圖顯式意圖可以直接通過(guò)名稱開(kāi)啟指定的目標(biāo)組件,通過(guò)其構(gòu)造方法Intent(ContextpackageContext,Class<?>cls)來(lái)實(shí)現(xiàn)。第1個(gè)參數(shù)Context,表示當(dāng)前的Activity對(duì)象,使用this即可。第2個(gè)參數(shù)Class,表示要啟動(dòng)的目標(biāo)Activity。通過(guò)構(gòu)造方法創(chuàng)建一個(gè)Intent對(duì)象,然后將該對(duì)象傳遞給Activity的startActivity()方法即可啟動(dòng)intent。Intentintent=newIntent(Activity01.this,Activity02.class); //創(chuàng)建Intent對(duì)象startActivity(intent);

//開(kāi)啟Activity022.3.2隱式意圖隱式意圖相比顯式意圖來(lái)說(shuō)更為抽象,它并沒(méi)有明確指定要開(kāi)啟哪個(gè)目標(biāo)組件,而是通過(guò)指定action和category等屬性信息,系統(tǒng)根據(jù)這些信息進(jìn)行分析,然后尋找目標(biāo)Activity。其示例代碼如下:Uriuri=Uri.parse("");Intentit=newIntent(Intent.ACTION_VIEW,uri);startActivity(it);2.3.3Activity之間的跳轉(zhuǎn)Intent組件是Android系統(tǒng)一種運(yùn)行時(shí)的綁定機(jī)制,在Android的應(yīng)用程序中,不管是頁(yè)面切換,還是傳遞數(shù)據(jù)或是調(diào)用外部程序,都可能要用到Intent。Intent的屬性有動(dòng)作(Action)、數(shù)據(jù)(Data)、分類(Category)、類型(Type)、組件(Compent)以及擴(kuò)展(Extra),其中最常用的是Action屬性。0102例如

:Intent.ACTION_MAIN:應(yīng)用程序入口。Intent.ACTION_SEND:發(fā)送短信、發(fā)送郵件等。Intent.ACTION_VIEW:顯示數(shù)據(jù)給用戶,如瀏覽網(wǎng)頁(yè)、顯示應(yīng)用、尋找應(yīng)用等。Intent.ACTION_WEB_SEARCH:從谷歌搜索內(nèi)容。Intent.ACTION_DIAL:撥打電話。Intent.ACTION_PICK:打開(kāi)聯(lián)系人列表。

2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應(yīng)用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對(duì)話框2.7菜單設(shè)計(jì)2.4.1.Bundle類Bundle類是用于為字符串與某組件對(duì)象建立映射關(guān)系的組件。Bundle組件與Intent配合使用,可在不同的Activity之間傳遞數(shù)據(jù)。Bundle類的常用方法如下。putString(Stringkey,Stringvalue):把字符串用“鍵值對(duì)”形式存放到Bundle對(duì)象中。getString(Stringkey):獲取指定key的值remove(Stringkey):移除指定key的鍵值對(duì)2.4.2應(yīng)用Intent在不同的Activity之間傳遞數(shù)據(jù)圖2-6應(yīng)用Intent在Activity界面之間傳遞數(shù)據(jù)

2.4.2應(yīng)用Intent在不同的Activity之間傳遞數(shù)據(jù)數(shù)據(jù)在不同Activity界面

之間傳遞的效果

【例2-2】應(yīng)用Intent傳遞數(shù)據(jù)2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應(yīng)用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對(duì)話框2.7菜單設(shè)計(jì)2.5消息提示類Toast用Toast來(lái)顯示幫助或提示消息,該提示消息以浮于應(yīng)用程序之上的形式顯示在屏幕上。因?yàn)樗⒉猾@得焦點(diǎn),所以不會(huì)影響用戶的其他操作,使用消息提示類(Toast)的目的是盡可能不中斷用戶操作,讓用戶看到提示信息。Toast的2個(gè)常用方法:makeText(Contextcontext,CharSequencetext,intduration),以特定時(shí)長(zhǎng)顯示文本內(nèi)容,參數(shù)text為顯示的文本,參數(shù)duration為顯示的時(shí)間show(),輸出提示信息。2.5消息提示類ToastToast類的常用屬性和方法:LENGTH_LONG

提示信息顯示較長(zhǎng)時(shí)間的常量LENGTH_SHORT提示信息顯示較短時(shí)間的常量setGravity(intgravity,intxOffset,intyOffset)設(shè)置提示信息在屏幕上的位置View類的常用方法:getView(Viewv)獲得視圖組件的控制addView(Viewv)添加視圖組件2.5消息提示類Toast【例2-3】消息提示類Toast示例本案例將實(shí)現(xiàn)按默認(rèn)方式、自定義方式和帶圖標(biāo)方式顯示Toast消息提示的效果。將事先準(zhǔn)備好的圖標(biāo)文件icon.jpg復(fù)制到資源目錄drawable下,以做提示消息的圖標(biāo)之用。帶圖標(biāo)的Toast程序運(yùn)行效果2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應(yīng)用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對(duì)話框2.7菜單設(shè)計(jì)2.6對(duì)話框?qū)υ捒蚴且粋€(gè)有邊框和標(biāo)題欄的、獨(dú)立存在的容器,在應(yīng)用程序中經(jīng)常使用對(duì)話框組件來(lái)進(jìn)行人機(jī)交互,用于需要用戶采取行動(dòng)才能繼續(xù)執(zhí)行的事件。Android系統(tǒng)常用對(duì)話框:AlertDialog:消息對(duì)話框;ProgressDialog:進(jìn)度條對(duì)話框;DatePickerDialog:日期選擇對(duì)話框;TimePickerDialog:時(shí)間選擇對(duì)話框。【例2-4】消息對(duì)話框示例AlertDialog消息對(duì)話框初始化對(duì)話框AlertDialog.Builderdialog=

newAlertDialog.Builder(DialogActivity.this);設(shè)置對(duì)話框的標(biāo)題setTitle("對(duì)話框")設(shè)置對(duì)話框的圖標(biāo)setIcon(R.drawable.icon)設(shè)置對(duì)話框顯示的內(nèi)容setMessage("消息對(duì)話框應(yīng)用示例")設(shè)置對(duì)話框的“確定”按鈕setPositiveButton("確定",newokClick())顯示對(duì)象框show()【例2-4】消息對(duì)話框示例添加視圖View【例2-3】消息提示框組件,添加一個(gè)線形布局和一個(gè)圖片組件【例2-4】對(duì)話框組件,添加一個(gè)布局文件login.xml【例2-3】消息提示類示例【例2-4】消息對(duì)話框示例LinearLayoutlogin=(LinearLayout)getLayoutInflater().inflate(R.layout.login,null);LinearLayoutlayout=(LinearLayout)toast.getView();Inflate()

將一個(gè)XML文件作為布局組件dialog.setView(login);2.1什么是Activity2.2創(chuàng)建新的Activity2.3Intent介紹2.4Bundle類及應(yīng)用Intent傳遞數(shù)據(jù)章目錄2.5消息提示類2.6對(duì)話框2.7菜單設(shè)計(jì)2.7菜單設(shè)計(jì)菜單(Menu)由

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論