Bundle在Android開發中十分常見,常用於以下場合:
1.Activity狀態數據的保存與恢復涉及到的兩個回調:void onSaveInstanceState (Bundle outState)、void onCreate (Bundle savedInstanceState)
2.Fragment的setArguments方法:void setArguments (Bundle args)
3.消息機制中的Message的setData方法:void setData (Bundle data)
也就是說Bundle是用來傳遞數據的“容器”,它保存的數據,是以key-value(鍵值對)的形式存在的。
我們經常使用Bundle在Activity之間傳遞數據,傳遞的數據可以是boolean、byte、int、long、float、double、string等基本類型或它們對應的數組,也可以是對象或對象數組。當Bundle傳遞的是對象或對象數組時,必須實現Serializable 或Parcelable接口。
Bundle操作基本數據類型的表格如下:
兩個activity之間的通訊可以通過bundle類來實現,代碼如下:
-
//新建一個Bundle類
-
Bundle mBundle = new Bundle();
-
//bundle類中加入數據(key -value的形式,另一個activity裏面取數據的時候,就要用到key,找出對應的value)
-
mBundle.putString("Data", "data from TestBundle");
-
//新建一個intent對象,並將該bundle加入這個intent對象
-
Intent intent = new Intent();
-
intent.setClass(TestBundle.this, Target.class);
-
intent.putExtras(mBundle);