使用Intent在Activity間傳遞資料(bundle)
不同Activity想傳遞簡單的資料, 可以使用Intent內的Bundle來儲存, 然後再利用Intent本身回傳。 通常只有這兩種情況,而這兩種情況也可能連續發生。 1. A Activity 傳值呼叫 B Activity , B Activity 取得 A 給予的值。 Ex:聯絡人App, 列表畫面 中點擊某個聯絡人跳出 編輯畫面 , 編輯畫面 需要預先填入該聯絡人的基本資料在每個欄位中。 2. 當 B Activity 處理完成 A Activity 給予的任務,要結束 B 本身並返回資料給 A 。 Ex:當編輯成功時, 編輯畫面 關閉但同時將已更改聯絡人的id返回給 列表畫面 。 檢討 雖然putExtra和getExtra用起來很簡單, 但還是錯用,因此特別書寫一下! 有一點我犯的錯,紀錄一下。 當你使用intent時,不用另外指定給它新Bundle()。 不過底下這行還沒編譯就會直接報錯了。 intent.extras = Bundle() 延用舊intent塞值: intent.putExtraString(KEY, 你要存的字串值) 或重新產生一個Intent再塞值: Intent().apply{ // put 你的資料在apply{ }中 } 最後putExtra能存的型態很多, 不只基本的Int、String、Float還有Array, 甚至連Serializable的物件都行。