一、API文檔說明
1.介紹
用於不同Activity之間的數據傳遞
1.重要方法
clear():清除此Bundle映射中的所有保存的數據。
clone():克隆當前Bundle
containsKey(String key):返回指定key的值
getString(String key):返回指定key的字符
hasFileDescriptors():指示是否包含任何捆綁打包文件描述符
isEmpty():如果這個捆綁映射為空,則返回true
putString(String key, String value):插入一個給定key的字符串值
readFromParcel(Parcel parcel):讀取這個parcel的內容
remove(String key):移除指定key的值
writeToParcel(Parcel parcel, int flags):寫入這個parcel的內容
二、實例
1 public class BundleDemo extends Activity { 2 private EditText etName; 3 Button btn; 4
5 /*
6 * (non-Javadoc) 7 * @see android.app.Activity#onCreate(android.os.Bundle) 8 */
9 @Override 10 protected void onCreate(Bundle savedInstanceState) { 11 // TODO Auto-generated method stub
12 super.onCreate(savedInstanceState); 13 setContentView(R.layout.bundle); 14
15 etName = (EditText) findViewById(R.id.etname); 16 btn = (Button) findViewById(R.id.btn); 17
18 btn.setOnClickListener(new OnClickListener() { 19 @Override 20 public void onClick(View v) { 21 String info = etName.getText().toString(); 22 Bundle bundle = new Bundle(); 23
24 //保存輸入的信息
25 bundle.putString("name", info); 26 Intent intent=new Intent(BundleDemo.this,BundleDemo1.class); 27 intent.putExtras(bundle); 28 finish(); 29 startActivity(intent); 30 } 31 }); 32 } 33 }
1 public class BundleDemo1 extends Activity { 2 private TextView etName; 3 /* (non-Javadoc) 4 * @see android.app.Activity#onCreate(android.os.Bundle) 5 */
6 @Override 7 protected void onCreate(Bundle savedInstanceState) { 8 // TODO Auto-generated method stub
9 super.onCreate(savedInstanceState); 10 setContentView(R.layout.b1); 11
12 etName=(TextView)findViewById(R.id.txtname); 13 Bundle b=getIntent().getExtras(); 14 //獲取Bundle的信息
15 String info=b.getString("name"); 16 etName.setText("您的姓名:"+info); 17 } 18 }
三、與SharedPreferences的區別
SharedPreferences是簡單的存儲持久化的設置,就像用戶每次打開應用程序時的主頁,它只是一些簡單的鍵值對來操作。它將數據保存在一個xml文件中
Bundle是將數據傳遞到另一個上下文中或保存或回復你自己狀態的數據存儲方式。它的數據不是持久化狀態。