1、2023/1/21NYUST CSIE EMISlabOutline傳送資料到新活動(Intent)Intent傳遞資訊Intent接收資訊練習Reference2023/1/2NYUST CSIE EMISlab2Activity功能總結2023/1/2NYUST CSIE EMISlab3Intent1.準備好意圖(Intent)2交給startActivity傳送startActivity地圖Android3.Android 框架接收到Intent,開始判斷4.將Intent(和所帶的資訊)交給適合的Activity處理瀏覽器framework撥號Activity傳送資料到新活動(Int
2、ent)-1Q:What is Intent?A:Intent(意圖)是一個動作與內容的集合。傳送到系統並且藉由其他Activity來處理裡面所指定的動作和內容Intent包含Activity間切換所需要的動作、分類資料的訊息,可以想像成是Activity之間的宅急便2023/1/2NYUST CSIE EMISlab4傳送資料到新活動(Intent)-2Intent可分成兩類:現成的Intent之前的範例自訂的Intent 一般開發者在程式設計中自行撰寫的Intent,則是透過自訂Intent來處理例如:切換Activity、在其間傳遞各式的資料2023/1/2NYUST CSIE EMIS
3、lab5傳送資料到新活動(Intent)-3Activity之間透過Intent傳送資訊的動作,可以分成:傳遞資訊接收資訊2023/1/2NYUST CSIE EMISlab6Intent傳遞資訊-1我們將完成應用程式從一個頁面改成兩個頁面:輸入頁面:原本的Activity從介面上取得輸入數值,透過傳送Intent,將值攜帶到結果頁面結果頁面:從Intent中取得其所攜帶的值,經過計算後產生報告結果2023/1/2NYUST CSIE EMISlab7Intent傳遞資訊-2把使用者輸入的數值、資料加到Bundle再將Bundle包裝到Intent中,再透過Intent傳送到結果頁面中2023
4、/1/2NYUST CSIE EMISlab8從Bmi到ReportKEY_HEIGHTKEY_WEIGHTbundleIntentIntent傳遞資訊-3將身高、體重2023/1/2NYUST CSIE EMISlab9BMIversion2.java身高、體重等資料放入Bundle中,再把Bundle打包放到Intent裡Intent接收資訊2023/1/2NYUST CSIE EMISlab10Report.java接收從上一頁面傳來的Intent,並收到裡面的Bundle,再取出裡面的身高體重資訊作為計算用練習實作並完成計算BMI應用程式,使程式能在兩個Activity之間傳值功能,B
5、MI Activity傳值,Report Activity接收BMI Activity的值計算並且顯示結果有提醒使用者輸入格式功能有選單列功能(選單列上有圖示)連結到首頁結束程式2023/1/2NYUST CSIE EMISlab11程式架構分析2023/1/2NYUST CSIE EMISlab12BMI身高(cm)體重(kg)計算Report結果身高:體重:BMI:健康評語首頁離開BundleIntentAndroid Manifest.xml執行結果-12023/1/2NYUST CSIE EMISlab13執行結果-22023/1/2NYUST CSIE EMISlab14延伸學習-1
6、在Report.java(Activity 2)中定義一個按鈕(回上一頁)當按下按鈕後,返回上一頁面(Activity 1),並且保留之前輸入的相關資訊方法:在BMIversion2.java(Activity 1)使用startActivityForResult(intent名稱,0)覆寫(Override)onActivityResult()2023/1/2NYUST CSIE EMISlab15延伸學習-2延續上一頁方法:在Report.java(Activity 2)在onClickListener中定義並且使用setResult(ResultCode,intnt名稱)2023/1/2NYUST CSIE EMISlab16程式碼2023/1/2NYUST CSIE EMISlab17BMIversion2.java程式碼2023/1/2NYUST CSIE EMISlab18Report.java執行結果2023/1/2NYUST CSIE EMISlab19ReferenceGoogle Android手機應用程式設計入門 第3版 第18章蓋索林(gasolin)文魁出版社Google Android SDK開發範例大全2 第3章 03-10佘志龍 陳昱勛 鄭名傑 陳小鳳 郭秩均 悅知文化2023/1/2NYUST CSIE EMISlab20