2013年8月19日 星期一

第五課: Activity 的訊息傳遞 --- Intent

之前, 我們介紹過如何做一個 Activity, 包括Layout的部分, 以及各UI元件的使用,
現在更進一步: 如果有兩個Activity, 那這兩個Activity之間要如何轉換呢?
Activity 之間的轉換必須用到 Intent* 這個元件.

我們將 Intent 觸發 Activity 的方式分為 Explicit 跟 Implicit 這兩種:
 Explicit intent 是明確指名要開啟哪個 Activity,  例如:
  Intent intent = new Intent(this, ActivityB.class);  
 intent.putExtra("Value", "This value for ActivityABC");  
 startActivity(intent);  

Implicit intent 是說明要做哪個動作, 但未說明要用哪個Activity開啟, 例如:
開啓網頁:
 Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.com"));  
 startActivity(intent);  
打電話:
 Intent intent = new Intent(Intent.ACTION_DIAL, Uri.parse("tel:047777777”));  
 startActivity(intent);  
使用地圖:
 String uri = "geo:"+ latitude + "," + longitude + "?q=my+street+address";  
 startActivity(new Intent(Intent.ACTION_VIEW, Uri.parse(uri)));  

詳細解說請見影音檔:


今日範例: 原始檔



* Intent 是 Activity, Service, BroadcastReceiver 這三大Android 功能的觸發器(Service 跟 BroadcastReceiver 在稍後的課程裡會提到),

沒有留言:

張貼留言