iT邦幫忙

第 11 屆 iThome 鐵人賽

DAY 14
0

Intent 中文為意圖,在許多場景可以使用到,跳轉畫面 (Activity) 、開啟相機、開啟相簿…等等,有許多用途,今天先來介紹 Activity 的跳轉畫面。

Intent: Intent Android 官方文件。

可以在上面連結看到, Intent 有許多建構子,可以做的事相當多,而今天要介紹的 Activity 跳轉畫面需要用到的是 Intent(Context packageContext, Class<?> cls) 。

Context packageContext : 需提供一個 Context ,在 Activity 中通常直接獲取該 Activity 的 Context 。
Class<?> cls : 提供一個要跳轉過去的 Activity 。

在這邊建立 Intent 是為了要讓 Activity 中的 function startActivity 或 startActivityForResult 使用,這兩個 function 差別如下。

startActivity : Activity A 跳轉到 Activity B ,且 Activity B 並無回傳值給 Activity A。

startActivityForResult : Activity A 跳轉到 Activity B ,且 Activity B 有回傳值給 Activity A , Activity A 必須 override onActivityForResult 這個 Function 來接收 Activity B 的回傳值,而因為要 override 這個 function 在 startActivityForResult 時除了 Intent 外還需要第二個參數 - RequestCode ,來讓 startActivityForResult 辨別是哪一個 Activity 回傳的。

override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
  super.onActivityResult(requestCode, resultCode, data)
  if (requestCode == 1 && resultCode == Activity.RESULT_OK) {
    
  }
}

這邊假設 requestCode 是 1,在 override 後通常會判斷 requestCode 和 resultCode 是否吻合,再去執行所要做的程式碼。


上一篇
[Day 13] Android 實作 - BMI
下一篇
[Day 15] Android 實作 - Toast、AlertDialog
系列文
Android心得筆記×Kotlin語法初探 不是新手村 是嬰兒村30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言