根据google官方的文档(http://developer.android.com/reference/android/os/Bundle.html

A mapping from String values to various Parcelable types.”

类继承关系:

java.lang.Object
     android.os.Bundle

Bundle类是一个final类:
public final class
Bundle
extends Objectimplements Parcelable Cloneable

两个activity之间的通讯可以通过bundle类来实现,做法就是:

(1)新建一个bundle类


[java]  view plain copy



  1. Bundle mBundle = new Bundle();   


(2)bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的value)


[java]  view plain copy



  1. mBundle.putString("Data", "data from TestBundle");  



(3)新建一个intent对象,并将该bundle加入这个intent对象


[cpp]  view plain copy


1. Intent intent = new Intent();    
2. intent.setClass(TestBundle.this, Target.class);    
3. intent.putExtras(mBundle);

完整代码如下:

android mainfest.xml如下:


[java]  
   view plain 
   copy 
   
 
   
 
 
1. <?xml version="1.0" encoding="utf-8"?>  
2. <manifest xmlns:android="http://schemas.android.com/apk/res/android"  
3. package="com.tencent.test"  
4. "1"  
5. "1.0">  
6. "@drawable/icon" android:label="@string/app_name">  
7. ".TestBundle"  
8. "@string/app_name">  
9.             <intent-filter>  
10. "android.intent.action.MAIN" />  
11. "android.intent.category.LAUNCHER" />  
12.             </intent-filter>  
13.         </activity>  
14. ".Target"></activity>  
15.     </application>  
16. "7" />  
17. </manifest>


两个类如下:intent从TestBundle类发起,到Target类。

类1:TestBundle类:


[java]  
   view plain 
   copy 
   
 
   
 
 
1. import android.app.Activity;    
2. import android.content.Intent;    
3. import android.os.Bundle;    
4. import android.view.View;  
5. import android.view.View.OnClickListener;  
6. import android.widget.Button;  
7.   
8. public class TestBundle extends Activity {    
9.       
10. private Button button1;  
11. private OnClickListener cl;   
12. public void onCreate(Bundle savedInstanceState) {    
13. super.onCreate(savedInstanceState);    
14.         setContentView(R.layout.main);  
15.           
16.         button1 = (Button) findViewById(R.id.button1);  
17. new OnClickListener(){  
18. @Override  
19. public void onClick(View arg0) {  
20. // TODO Auto-generated method stub  
21. new Intent();    
22. this, Target.class);    
23. new Bundle();    
24. "Data", "data from TestBundle");//压入数据    
25.                 intent.putExtras(mBundle);    
26.                 startActivity(intent);  
27.             }  
28.         };  
29.         button1.setOnClickListener(cl);  
30.     }  
31. }



类2: Target


[java]  
   view plain 
   copy 
   
 
   
 
 
1. import android.app.Activity;    
2. import android.os.Bundle;    
3.   
4. public class Target extends Activity{    
5.   
6. public void onCreate(Bundle savedInstanceState) {    
7.           
8. super.onCreate(savedInstanceState);    
9.         setContentView(R.layout.target);    
10. "color:#ff6600;">Bundle bundle = getIntent().getExtras();   </span> //得到传过来的bundle  
11. "Data");//读出数据    
12.         setTitle(data);    
13.   
14.     }    
15. }


布局文件:

main.xml


[java]  
   view plain 
   copy 
   
 
   
 
 
1. <?xml version="1.0" encoding="utf-8"?>  
2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3. "vertical"  
4. "fill_parent"  
5. "fill_parent"  
6.     >  
7. <TextView    
8. "fill_parent"   
9. "wrap_content"   
10. "@string/hello"  
11.     />  
12. <Button    
13. "fill_parent"   
14. "wrap_content"   
15. "@string/button"  
16. "@+id/button1"  
17.     />   
18. </LinearLayout>  
 
 
 
 
target.xml


[java]  view plain copy


1. <?xml version="1.0" encoding="utf-8"?>  
2. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
3. "vertical"  
4. "fill_parent"  
5. "fill_parent"  
6.     >  
7. <TextView    
8. "fill_parent"   
9. "wrap_content"   
10. "@string/target"  
11.     />  
12. </LinearLayout>


String.xml


[java]  view plain copy


1. <?xml version="1.0" encoding="utf-8"?>  
2. <resources>  
3. "hello">Hello World, TestBundle!</string>  
4. "app_name">测试Bundle用法</string>  
5. "button">点击跳转</string>  
6. "target">来到target activity</string>  
7. </resources>