Android移動(dòng)應(yīng)用開發(fā)基礎(chǔ)教程第2章課件_第1頁
Android移動(dòng)應(yīng)用開發(fā)基礎(chǔ)教程第2章課件_第2頁
Android移動(dòng)應(yīng)用開發(fā)基礎(chǔ)教程第2章課件_第3頁
Android移動(dòng)應(yīng)用開發(fā)基礎(chǔ)教程第2章課件_第4頁
Android移動(dòng)應(yīng)用開發(fā)基礎(chǔ)教程第2章課件_第5頁
已閱讀5頁,還剩53頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

Android移動(dòng)應(yīng)用開發(fā)基礎(chǔ)教程講授:XXXXXAndroid移動(dòng)應(yīng)用開發(fā)基礎(chǔ)教程講授:XXXXX1第2章Android核心組件——活動(dòng)本章主要內(nèi)容:活動(dòng)是什么活動(dòng)的基本操作在活動(dòng)中使用Intent在活動(dòng)之間傳遞數(shù)據(jù)活動(dòng)的生命周期活動(dòng)的啟動(dòng)模式第2章Android核心組件——活動(dòng)本章主要內(nèi)容:22.1 活動(dòng)是什么活動(dòng)是Android的一個(gè)核心應(yīng)用組件,它主要用于實(shí)現(xiàn)應(yīng)用功能邏輯,并通過界面顯示數(shù)據(jù)或接收用戶輸入。一個(gè)應(yīng)用程序可以包含零個(gè)或多個(gè)活動(dòng)。沒有活動(dòng)的應(yīng)用程序,用戶將無法看到程序界面,這種應(yīng)用程序通常在后臺(tái)運(yùn)行,不涉及用戶交互。從用戶的角度看,活動(dòng)具有如下特點(diǎn)??赏ㄟ^返回鍵退出活動(dòng)。可通過Home鍵返回桌面??稍诨顒?dòng)中啟動(dòng)另個(gè)一個(gè)界面,此時(shí)按返回鍵返回前一個(gè)活動(dòng)。2.1 活動(dòng)是什么活動(dòng)是Android的一個(gè)核心應(yīng)用組件,它32.2 活動(dòng)的基本操作本節(jié)主要內(nèi)容:為活動(dòng)綁定自定義視圖啟動(dòng)另一個(gè)活動(dòng)結(jié)束活動(dòng)2.2 活動(dòng)的基本操作本節(jié)主要內(nèi)容:42.2.1為活動(dòng)綁定自定義視圖在AndroidStudio中演示2.2.1為活動(dòng)綁定自定義視圖在AndroidStudi52.2.1為活動(dòng)綁定自定義視圖在AndroidStudio中演示2.2.1為活動(dòng)綁定自定義視圖在AndroidStudi62.2.3結(jié)束活動(dòng)在AndroidStudio中演示2.2.3結(jié)束活動(dòng)在AndroidStudio中演示72.3 在活動(dòng)中使用IntentIntent是Android應(yīng)用中的一種消息傳遞機(jī)制,通過Intent對(duì)象實(shí)現(xiàn)其他應(yīng)用組件之間的通信。通常,Intent用于啟動(dòng)活動(dòng)、啟動(dòng)服務(wù)以及發(fā)送廣播。Intent可分為兩種:顯式Intent和隱式Intent本節(jié)主要內(nèi)容:顯式Intent隱式IntentIntent過濾器從網(wǎng)頁中啟動(dòng)活動(dòng)2.3 在活動(dòng)中使用IntentIntent是82.3.1顯式Intent顯式Intent指在創(chuàng)建Intent對(duì)象時(shí),指定了要啟動(dòng)的特定組件。實(shí)例演示2.3.1顯式Intent顯式Intent指在創(chuàng)建Inte92.3.2隱式Intent顯式Intent指明了要啟動(dòng)的組件,隱式Intent則相反,它不指明要啟動(dòng)的組件,而是指明要執(zhí)行的操作,讓系統(tǒng)去選擇可完成該操作的組件。啟動(dòng)同一個(gè)應(yīng)用中的活動(dòng)實(shí)例演示啟動(dòng)另一個(gè)應(yīng)用中的活動(dòng)實(shí)例演示2.3.2隱式Intent顯式Intent指明了要啟動(dòng)的組102.3.3Intent過濾器Intent過濾器主要用于聲明應(yīng)用組件可接收的Intent操作、數(shù)據(jù)和其他設(shè)置。<activityandroid:name=".MainActivity"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name=

"ent.category.LAUNCHER"/></intent-filter></activity>2.3.3Intent過濾器Intent過濾器主要用于聲明11在清單文件AndroidManifest.xml聲明Intent過濾器時(shí),可使用下面的3個(gè)元素:<action>元素:在其name屬性中聲明組件可接受的Intent操作,操作名稱可以是自定義的文本字符串或者ent.action類的常量。<category>元素:在其name屬性中聲明組件可接受的Intent類別,類別名稱通常為ent.category類中的常量。如果要讓活動(dòng)響應(yīng)隱式Intent,則必須將過濾器的類別設(shè)置為ent.category.DEFAULT。如果沒有在Intent過濾器中聲明DEFAULT類別,則隱式Intent不會(huì)解析該組件。<data>元素:聲明數(shù)據(jù)URI的scheme、host、port、path等,或者是數(shù)據(jù)的MIME類型在清單文件AndroidManifest.xml聲明Inte12在代碼中創(chuàng)建Intent對(duì)象時(shí),可調(diào)用下列方法為Intent對(duì)象添加操作、類別、數(shù)據(jù)或其他屬性:setAction():設(shè)置Intent對(duì)象操作。也可在Intent對(duì)象構(gòu)造函數(shù)中指定操作。addCategory():為Intent對(duì)象添加類別。setData():設(shè)置數(shù)據(jù)URI。setType():設(shè)置MIME類型。setDataAndType():setData()和setType()會(huì)相互抵消彼此的設(shè)置,要同時(shí)設(shè)置URI和MIME類型,則需調(diào)用setDataAndType()。在代碼中創(chuàng)建Intent對(duì)象時(shí),可調(diào)用下列方法為Intent132.3.4從網(wǎng)頁中啟動(dòng)活動(dòng)Android允許在瀏覽器中啟動(dòng)活動(dòng)。在Intent過濾器中包含BROWSABLE類別,即表示當(dāng)前活動(dòng)可從瀏覽器啟動(dòng)。2.3.4從網(wǎng)頁中啟動(dòng)活動(dòng)Android允許在瀏覽器中啟動(dòng)142.4 在活動(dòng)之間傳遞數(shù)據(jù)本節(jié)主要內(nèi)容:傳遞簡單數(shù)據(jù)傳遞Bundle對(duì)象傳遞對(duì)象獲取活動(dòng)返回的數(shù)據(jù)2.4 在活動(dòng)之間傳遞數(shù)據(jù)本節(jié)主要內(nèi)容:152.4.1傳遞簡單數(shù)據(jù)簡單數(shù)據(jù)指字符串、整數(shù)、浮點(diǎn)數(shù)等各種簡單數(shù)據(jù)類型的數(shù)據(jù),或者是這些簡單數(shù)據(jù)類型的數(shù)據(jù)。putExtra(name,value)方法可將指定的數(shù)據(jù)封裝到Intent對(duì)象中。其中,name為表示數(shù)據(jù)名稱的字符串,value為要傳遞的各種簡單數(shù)據(jù)類型的值。要獲取Intent對(duì)象中封裝的簡單數(shù)據(jù),可調(diào)用各種getXXXExtra()方法。2.4.1傳遞簡單數(shù)據(jù)簡單數(shù)據(jù)指字符串、整數(shù)、浮點(diǎn)數(shù)等各種16getCharExtra(Stringname,chardefaultValue):從Intent對(duì)象中獲取指定name的char類型數(shù)據(jù)。getFloatExtra(Stringname,floatdefaultValue):從Intent對(duì)象中獲取指定name的float類型數(shù)據(jù)。getFloatArrayExtra(Stringname):從Intent對(duì)象中獲取指定name的float類型數(shù)組。getIntArrayExtra(Stringname):從Intent對(duì)象中獲取指定name的int類型數(shù)組。getIntExtra(Stringname,intdefaultValue):從Intent對(duì)象中獲取指定name的int類型數(shù)據(jù)。getStringArrayExtra(Stringname):從Intent對(duì)象中獲取指定name的String類型數(shù)組。getStringExtra(Stringname):從Intent對(duì)象中獲取指定name的String類型數(shù)據(jù)。getCharExtra(Stringname,char172.4.2傳遞Bundle對(duì)象將各種簡單數(shù)據(jù)封裝到一個(gè)Bundle對(duì)象中,再將Bundle對(duì)象封裝到Intent對(duì)象中傳遞給啟動(dòng)的活動(dòng)。Bundle對(duì)象的各種putXXX(Stringkey,XXXvalue)方法,可將XXX類型的數(shù)據(jù)封裝到其中,對(duì)應(yīng)的用getXXX(Stringkey)方法從其中獲取數(shù)據(jù)。Bundle對(duì)象準(zhǔn)備好之后,調(diào)用putExtras(bundle)或putExtra(name,bundle)方法將其封裝到Intent對(duì)象中。要從Intent對(duì)象中獲取Bundle對(duì)象時(shí),調(diào)用對(duì)應(yīng)的getExtras()或getBundleExtra()方法即可。2.4.2傳遞Bundle對(duì)象將各種簡單數(shù)據(jù)封裝到一個(gè)Bu182.4.3傳遞對(duì)象自定義的類對(duì)象,不能像簡單數(shù)據(jù)一樣直接封裝到Intent對(duì)象中。Android系統(tǒng)要求封裝到Intent對(duì)象中支持序列化。讓類實(shí)現(xiàn)Java內(nèi)置的Serializable接口,或者實(shí)現(xiàn)Android提供的Parcelable接口,即可使類對(duì)象支持序列化。使用實(shí)現(xiàn)Serializable接口的類對(duì)象實(shí)例演示使用實(shí)現(xiàn)Parcelable接口的類對(duì)象實(shí)例演示2.4.3傳遞對(duì)象自定義的類對(duì)象,不能像簡單數(shù)據(jù)一樣直接封192.4.4獲取活動(dòng)返回的數(shù)據(jù)要獲得活動(dòng)中返回的數(shù)據(jù),則需要使用startActivityForResult(intent,requestCode)方法來啟動(dòng)活動(dòng)。其中,參數(shù)intent是一個(gè)Intent對(duì)象,用于封裝需要傳遞給活動(dòng)的數(shù)據(jù)。參數(shù)requestCode為請求碼,是一個(gè)整數(shù),用來標(biāo)識(shí)當(dāng)前請求。一個(gè)活動(dòng)可能會(huì)接收到其他不同活動(dòng)的請求,從活動(dòng)返回時(shí),它會(huì)原樣返回接收到的請求碼。在處理返回結(jié)果時(shí),可通過請求碼判斷是不是從所請求的活動(dòng)返回。2.4.4獲取活動(dòng)返回的數(shù)據(jù)要獲得活動(dòng)中返回的數(shù)據(jù),則需要20在當(dāng)前活動(dòng)中需重載onActivityResult()方法來處理返回結(jié)果,其代碼基本結(jié)構(gòu)如下:protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){super.onActivityResult(requestCode,resultCode,data);……}參數(shù)requestCode為從所請求的活動(dòng)返回的它所接收到的請求碼。resultCode為結(jié)果代碼,常量RESULT_CANCELED表示用戶取消了操作,RESULT_OK表示用戶正確完成了操作。data為請求活動(dòng)返回的Intent對(duì)象,從中可獲取返回的數(shù)據(jù)。在請求的活動(dòng)中,用setResult(resultCode,intent)方法設(shè)置返回結(jié)果,resultCode為結(jié)果代碼,intent為封裝了返回?cái)?shù)據(jù)的Intent對(duì)象。在當(dāng)前活動(dòng)中需重載onActivityResult()方法來212.5 活動(dòng)的生命周期

活動(dòng)的生命周期指活動(dòng)從第一次創(chuàng)建到被銷毀的整個(gè)時(shí)間。在一個(gè)生命周期內(nèi),活動(dòng)可能存在多種狀態(tài)。深入了解活動(dòng)的生命周期,有助于更合理管理應(yīng)用程序資源,設(shè)計(jì)出效率更高的應(yīng)用。本節(jié)主要內(nèi)容:返回棧、活動(dòng)狀態(tài)及生命周期回調(diào)檢驗(yàn)活動(dòng)的生命周期2.5 活動(dòng)的生命周期活動(dòng)的生命周期指活動(dòng)從第222.5.1返回棧、活動(dòng)狀態(tài)及生命周期回調(diào)1、返回棧一個(gè)應(yīng)用可能包含多個(gè)活動(dòng)。Android系統(tǒng)使用堆棧(也稱返回棧)來管理活動(dòng)。返回棧遵循“先進(jìn)后出”原則。2.5.1返回棧、活動(dòng)狀態(tài)及生命周期回調(diào)1、返回棧23Android移動(dòng)應(yīng)用開發(fā)基礎(chǔ)教程第2章課件242.5.2檢驗(yàn)活動(dòng)的生命周期實(shí)例演示2.5.2檢驗(yàn)活動(dòng)的生命周期實(shí)例演示252.6 活動(dòng)的啟動(dòng)模式

活動(dòng)總是擁有特定的啟動(dòng)模式,啟動(dòng)模式?jīng)Q定了Android系統(tǒng)如何在任務(wù)的返回棧中管理活動(dòng)的實(shí)例?;顒?dòng)的啟動(dòng)模式有4種:standard、singleTop、singleTask和singleInstance??稍谇鍐挝募褂?lt;activity>元素的launchMode屬性來指定活動(dòng)的啟動(dòng)模式。本節(jié)主要內(nèi)容:standard模式singleTop模式singleTask和singleInstance模式2.6 活動(dòng)的啟動(dòng)模式活動(dòng)總是擁有特定的啟動(dòng)模262.6.1standard模式standard是活動(dòng)的默認(rèn)啟動(dòng)模式。在前面的所有內(nèi)容中用到的活動(dòng),其啟動(dòng)模式都是standard。系統(tǒng)在啟動(dòng)standard模式的活動(dòng)時(shí),不會(huì)檢查任務(wù)返回棧頂部中是否已經(jīng)有該活動(dòng),總是創(chuàng)建一個(gè)新的活動(dòng)實(shí)例,將其放到返回棧頂部。2.6.1standard模式standard是活動(dòng)的默認(rèn)272.6.2singleTop模式如果活動(dòng)是singleTop模式,在啟動(dòng)活動(dòng)時(shí),系統(tǒng)首先檢查任務(wù)返回棧,若棧頂活動(dòng)是相同活動(dòng)的實(shí)例,則直接使用該活動(dòng),不會(huì)再創(chuàng)建新的實(shí)例。2.6.2singleTop模式如果活動(dòng)是singleTo282.6.3singleTask和singleInstance模式singleTask啟動(dòng)模式表示一個(gè)任務(wù)中只能存在活動(dòng)的一個(gè)實(shí)例。在啟動(dòng)singleTask模式的活動(dòng)時(shí),系統(tǒng)如果發(fā)現(xiàn)任務(wù)返回棧中有該活動(dòng)實(shí)例,則將該實(shí)例之上的所有活動(dòng)出棧,使該實(shí)例成為棧頂活動(dòng)。如果入伍返回棧中沒有活動(dòng)實(shí)例,則創(chuàng)建一個(gè)新的活動(dòng)實(shí)例,將其放到棧頂。與singleTop模式有點(diǎn)類似,但singleInstance啟動(dòng)模式表示活動(dòng)只允許“設(shè)備”中存在活動(dòng)的一個(gè)實(shí)例,在啟動(dòng)singleInstance模式的活動(dòng)時(shí),系統(tǒng)會(huì)為活動(dòng)實(shí)例創(chuàng)建一個(gè)新的任務(wù)返回棧。設(shè)備中的所有應(yīng)用可共享該活動(dòng)實(shí)例。2.6.3singleTask和singleInstanc29Android移動(dòng)應(yīng)用開發(fā)基礎(chǔ)教程講授:XXXXXAndroid移動(dòng)應(yīng)用開發(fā)基礎(chǔ)教程講授:XXXXX30第2章Android核心組件——活動(dòng)本章主要內(nèi)容:活動(dòng)是什么活動(dòng)的基本操作在活動(dòng)中使用Intent在活動(dòng)之間傳遞數(shù)據(jù)活動(dòng)的生命周期活動(dòng)的啟動(dòng)模式第2章Android核心組件——活動(dòng)本章主要內(nèi)容:312.1 活動(dòng)是什么活動(dòng)是Android的一個(gè)核心應(yīng)用組件,它主要用于實(shí)現(xiàn)應(yīng)用功能邏輯,并通過界面顯示數(shù)據(jù)或接收用戶輸入。一個(gè)應(yīng)用程序可以包含零個(gè)或多個(gè)活動(dòng)。沒有活動(dòng)的應(yīng)用程序,用戶將無法看到程序界面,這種應(yīng)用程序通常在后臺(tái)運(yùn)行,不涉及用戶交互。從用戶的角度看,活動(dòng)具有如下特點(diǎn)??赏ㄟ^返回鍵退出活動(dòng)??赏ㄟ^Home鍵返回桌面??稍诨顒?dòng)中啟動(dòng)另個(gè)一個(gè)界面,此時(shí)按返回鍵返回前一個(gè)活動(dòng)。2.1 活動(dòng)是什么活動(dòng)是Android的一個(gè)核心應(yīng)用組件,它322.2 活動(dòng)的基本操作本節(jié)主要內(nèi)容:為活動(dòng)綁定自定義視圖啟動(dòng)另一個(gè)活動(dòng)結(jié)束活動(dòng)2.2 活動(dòng)的基本操作本節(jié)主要內(nèi)容:332.2.1為活動(dòng)綁定自定義視圖在AndroidStudio中演示2.2.1為活動(dòng)綁定自定義視圖在AndroidStudi342.2.1為活動(dòng)綁定自定義視圖在AndroidStudio中演示2.2.1為活動(dòng)綁定自定義視圖在AndroidStudi352.2.3結(jié)束活動(dòng)在AndroidStudio中演示2.2.3結(jié)束活動(dòng)在AndroidStudio中演示362.3 在活動(dòng)中使用IntentIntent是Android應(yīng)用中的一種消息傳遞機(jī)制,通過Intent對(duì)象實(shí)現(xiàn)其他應(yīng)用組件之間的通信。通常,Intent用于啟動(dòng)活動(dòng)、啟動(dòng)服務(wù)以及發(fā)送廣播。Intent可分為兩種:顯式Intent和隱式Intent本節(jié)主要內(nèi)容:顯式Intent隱式IntentIntent過濾器從網(wǎng)頁中啟動(dòng)活動(dòng)2.3 在活動(dòng)中使用IntentIntent是372.3.1顯式Intent顯式Intent指在創(chuàng)建Intent對(duì)象時(shí),指定了要啟動(dòng)的特定組件。實(shí)例演示2.3.1顯式Intent顯式Intent指在創(chuàng)建Inte382.3.2隱式Intent顯式Intent指明了要啟動(dòng)的組件,隱式Intent則相反,它不指明要啟動(dòng)的組件,而是指明要執(zhí)行的操作,讓系統(tǒng)去選擇可完成該操作的組件。啟動(dòng)同一個(gè)應(yīng)用中的活動(dòng)實(shí)例演示啟動(dòng)另一個(gè)應(yīng)用中的活動(dòng)實(shí)例演示2.3.2隱式Intent顯式Intent指明了要啟動(dòng)的組392.3.3Intent過濾器Intent過濾器主要用于聲明應(yīng)用組件可接收的Intent操作、數(shù)據(jù)和其他設(shè)置。<activityandroid:name=".MainActivity"><intent-filter><actionandroid:name="ent.action.MAIN"/><categoryandroid:name=

"ent.category.LAUNCHER"/></intent-filter></activity>2.3.3Intent過濾器Intent過濾器主要用于聲明40在清單文件AndroidManifest.xml聲明Intent過濾器時(shí),可使用下面的3個(gè)元素:<action>元素:在其name屬性中聲明組件可接受的Intent操作,操作名稱可以是自定義的文本字符串或者ent.action類的常量。<category>元素:在其name屬性中聲明組件可接受的Intent類別,類別名稱通常為ent.category類中的常量。如果要讓活動(dòng)響應(yīng)隱式Intent,則必須將過濾器的類別設(shè)置為ent.category.DEFAULT。如果沒有在Intent過濾器中聲明DEFAULT類別,則隱式Intent不會(huì)解析該組件。<data>元素:聲明數(shù)據(jù)URI的scheme、host、port、path等,或者是數(shù)據(jù)的MIME類型在清單文件AndroidManifest.xml聲明Inte41在代碼中創(chuàng)建Intent對(duì)象時(shí),可調(diào)用下列方法為Intent對(duì)象添加操作、類別、數(shù)據(jù)或其他屬性:setAction():設(shè)置Intent對(duì)象操作。也可在Intent對(duì)象構(gòu)造函數(shù)中指定操作。addCategory():為Intent對(duì)象添加類別。setData():設(shè)置數(shù)據(jù)URI。setType():設(shè)置MIME類型。setDataAndType():setData()和setType()會(huì)相互抵消彼此的設(shè)置,要同時(shí)設(shè)置URI和MIME類型,則需調(diào)用setDataAndType()。在代碼中創(chuàng)建Intent對(duì)象時(shí),可調(diào)用下列方法為Intent422.3.4從網(wǎng)頁中啟動(dòng)活動(dòng)Android允許在瀏覽器中啟動(dòng)活動(dòng)。在Intent過濾器中包含BROWSABLE類別,即表示當(dāng)前活動(dòng)可從瀏覽器啟動(dòng)。2.3.4從網(wǎng)頁中啟動(dòng)活動(dòng)Android允許在瀏覽器中啟動(dòng)432.4 在活動(dòng)之間傳遞數(shù)據(jù)本節(jié)主要內(nèi)容:傳遞簡單數(shù)據(jù)傳遞Bundle對(duì)象傳遞對(duì)象獲取活動(dòng)返回的數(shù)據(jù)2.4 在活動(dòng)之間傳遞數(shù)據(jù)本節(jié)主要內(nèi)容:442.4.1傳遞簡單數(shù)據(jù)簡單數(shù)據(jù)指字符串、整數(shù)、浮點(diǎn)數(shù)等各種簡單數(shù)據(jù)類型的數(shù)據(jù),或者是這些簡單數(shù)據(jù)類型的數(shù)據(jù)。putExtra(name,value)方法可將指定的數(shù)據(jù)封裝到Intent對(duì)象中。其中,name為表示數(shù)據(jù)名稱的字符串,value為要傳遞的各種簡單數(shù)據(jù)類型的值。要獲取Intent對(duì)象中封裝的簡單數(shù)據(jù),可調(diào)用各種getXXXExtra()方法。2.4.1傳遞簡單數(shù)據(jù)簡單數(shù)據(jù)指字符串、整數(shù)、浮點(diǎn)數(shù)等各種45getCharExtra(Stringname,chardefaultValue):從Intent對(duì)象中獲取指定name的char類型數(shù)據(jù)。getFloatExtra(Stringname,floatdefaultValue):從Intent對(duì)象中獲取指定name的float類型數(shù)據(jù)。getFloatArrayExtra(Stringname):從Intent對(duì)象中獲取指定name的float類型數(shù)組。getIntArrayExtra(Stringname):從Intent對(duì)象中獲取指定name的int類型數(shù)組。getIntExtra(Stringname,intdefaultValue):從Intent對(duì)象中獲取指定name的int類型數(shù)據(jù)。getStringArrayExtra(Stringname):從Intent對(duì)象中獲取指定name的String類型數(shù)組。getStringExtra(Stringname):從Intent對(duì)象中獲取指定name的String類型數(shù)據(jù)。getCharExtra(Stringname,char462.4.2傳遞Bundle對(duì)象將各種簡單數(shù)據(jù)封裝到一個(gè)Bundle對(duì)象中,再將Bundle對(duì)象封裝到Intent對(duì)象中傳遞給啟動(dòng)的活動(dòng)。Bundle對(duì)象的各種putXXX(Stringkey,XXXvalue)方法,可將XXX類型的數(shù)據(jù)封裝到其中,對(duì)應(yīng)的用getXXX(Stringkey)方法從其中獲取數(shù)據(jù)。Bundle對(duì)象準(zhǔn)備好之后,調(diào)用putExtras(bundle)或putExtra(name,bundle)方法將其封裝到Intent對(duì)象中。要從Intent對(duì)象中獲取Bundle對(duì)象時(shí),調(diào)用對(duì)應(yīng)的getExtras()或getBundleExtra()方法即可。2.4.2傳遞Bundle對(duì)象將各種簡單數(shù)據(jù)封裝到一個(gè)Bu472.4.3傳遞對(duì)象自定義的類對(duì)象,不能像簡單數(shù)據(jù)一樣直接封裝到Intent對(duì)象中。Android系統(tǒng)要求封裝到Intent對(duì)象中支持序列化。讓類實(shí)現(xiàn)Java內(nèi)置的Serializable接口,或者實(shí)現(xiàn)Android提供的Parcelable接口,即可使類對(duì)象支持序列化。使用實(shí)現(xiàn)Serializable接口的類對(duì)象實(shí)例演示使用實(shí)現(xiàn)Parcelable接口的類對(duì)象實(shí)例演示2.4.3傳遞對(duì)象自定義的類對(duì)象,不能像簡單數(shù)據(jù)一樣直接封482.4.4獲取活動(dòng)返回的數(shù)據(jù)要獲得活動(dòng)中返回的數(shù)據(jù),則需要使用startActivityForResult(intent,requestCode)方法來啟動(dòng)活動(dòng)。其中,參數(shù)intent是一個(gè)Intent對(duì)象,用于封裝需要傳遞給活動(dòng)的數(shù)據(jù)。參數(shù)requestCode為請求碼,是一個(gè)整數(shù),用來標(biāo)識(shí)當(dāng)前請求。一個(gè)活動(dòng)可能會(huì)接收到其他不同活動(dòng)的請求,從活動(dòng)返回時(shí),它會(huì)原樣返回接收到的請求碼。在處理返回結(jié)果時(shí),可通過請求碼判斷是不是從所請求的活動(dòng)返回。2.4.4獲取活動(dòng)返回的數(shù)據(jù)要獲得活動(dòng)中返回的數(shù)據(jù),則需要49在當(dāng)前活動(dòng)中需重載onActivityResult()方法來處理返回結(jié)果,其代碼基本結(jié)構(gòu)如下:protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){super.onActivityResult(requestCode,resultCode,data);……}參數(shù)requestCode為從所請求的活動(dòng)返回的它所接收到的請求碼。resultCode為結(jié)果代碼,常量RESULT_CANCELED表示用戶取消了操作,RESULT_OK表示用戶正確完成了操作。data為請求活動(dòng)返回的Intent對(duì)象,從中可獲取返回的數(shù)據(jù)。在請求的活動(dòng)中,用setResult(resultCode,intent)方法設(shè)置返回結(jié)果,resultCode為結(jié)果代碼,intent為封裝了返回?cái)?shù)據(jù)的Intent對(duì)象。在當(dāng)前活動(dòng)中需重載onActivityResult()方法來502.5 活動(dòng)的生命周期

活動(dòng)的生命周期指活動(dòng)從第一次創(chuàng)建到被銷毀的整個(gè)時(shí)間。在一個(gè)生命周期內(nèi),活動(dòng)可能存在多種狀態(tài)。深入了解活動(dòng)的生命周期,有助于更合理管理應(yīng)用程序資

溫馨提示

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

評(píng)論

0/150

提交評(píng)論