在Activity中通過Intent跳轉到另外的Activity時,如果希望同時能夠傳遞資料,則可以利用bundle,先將資料放到bundle物件中,然後為Intent新增該bundle物件,這樣就實現了引數的批量新增,
Intent intent = new Intent();
intent.setClass(EX03_10.this,EX03_10_1.class);
/*new一個Bundle物件,並將要傳遞的資料傳入*/
Bundle bundle = new Bundle();
bundle.putDouble("height",height);
bundle.putString("sex",sex);
/*將Bundle物件assign給Intent*/
intent.putExtras(bundle);
/*呼叫Activity EX03_10_1*/
startActivity(intent);
關於這個知識點本人覺得傳智的講義說的比較清楚
Bundle類用作攜帶資料,它類似於Map,用於存放key-value名值對形式的值。相對於Map,它提供了各種常用型別的putXxx()/getXxx()方法,如:putString()/getString()和putInt()/getInt(),putXxx()用於往Bundle物件放入資料,getXxx()方法用於從Bundle物件裡獲取資料。Bundle的內部實際上是使用了HashMap<String, Object>型別的變數來存放putXxx()方法放入的值
在呼叫Bundle物件的getXxx()方法時,方法內部會從該變數中獲取資料,然後對資料進行型別轉換,轉換成什麼型別由方法的Xxx決定,getXxx()方法會把轉換後的值返回。
除此之外我們也可以單個新增引數,這種寫法使用起來比較方便,而且只需要編寫少量的程式碼。
Intent intent = new Intent();
intent.putExtra("name", "xxxxxx");
Intent提供了各種常用型別過載後的putExtra()方法,如: putExtra(String name, String value)、 putExtra(String name, long value),在putExtra()方法內部會判斷當前Intent物件內部是否已經存在一個Bundle物件,如果不存在就會新建Bundle物件,以後呼叫putExtra()方法傳入的值都會存放於該Bundle物件