[問題] 傳遞參數的用法bundle & intent

看板AndroidDev作者 (璐琺)時間14年前 (2011/02/23 21:02), 編輯推噓2(206)
留言8則, 3人參與, 最新討論串1/2 (看更多)
請問大家一個小問題, 在傳遞Activity參數之間的程式寫法, 我有在書上看過這樣的程式碼, 單純用intent傳遞參數 Intent intent = new Intent(); intent.putExtra("KEY_MONTH", intMonth); intent.putExtra("KEY_DAY", intDay); startActivity(Activity1.this, Activity2.class); 另一種方式是使用Bundle的方式 Intent intent = new Intent(); Bundle bundle = new bundle(); bundle.putInt("KEY_MONTH", intMonth); bundle.putInt("KEY_DAY", intDay); intent.putExtras(bundle); startActivity(Activity1.this, Activity2.class); 想請問這樣傳遞值的方式有什麼差異呀? 我試了幾次感覺都可以達到相同功能, 但就是不曉得對於程式的話是差在哪一邊 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.115.52.201

02/23 21:07, , 1F
bundle讓你傳遞參數的方式比較清楚,通常你不會只
02/23 21:07, 1F

02/23 21:08, , 2F
一兩個東西進去,而是很多個,如果全部都用key的方式
02/23 21:08, 2F

02/23 21:08, , 3F
塞進intent,命名不但很不方便還會很雜亂。
02/23 21:08, 3F

02/23 21:09, , 4F
功能的話應該是沒有差別...
02/23 21:09, 4F

02/23 21:12, , 5F
intent可以連續呼叫putXXX(), bundle不行
02/23 21:12, 5F

02/23 21:18, , 6F
所以執行結果相同,只是在於寫程式的習慣不同而已吧!?
02/23 21:18, 6F

02/23 21:21, , 7F
就這個例子是這樣, 但有些東西沒辦法直接當 extra 放進去
02/23 21:21, 7F

02/23 21:21, , 8F
這種時候就非得用 Bundle 不可了
02/23 21:21, 8F
文章代碼(AID): #1DPGLqny (AndroidDev)
文章代碼(AID): #1DPGLqny (AndroidDev)