今天发现自己连Bundle类都没有搞清楚,于是花时间研究了一下。

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

Bundle类是一个key-value对,“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. "http://schemas.android.com/apk/res/android"  
  3.       package="com.tencent.test"  
  4.       android:versionCode="1"  
  5.       android:versionName="1.0">  
  6.     "@drawable/icon" android:label="@string/app_name">  
  7.         ".TestBundle"  
  8.                   android:label="@string/app_name">  
  9.               
  10.                 "android.intent.action.MAIN" />  
  11.                 "android.intent.category.LAUNCHER" />  
  12.               
  13.           
  14.     ".Target">  
  15.       
  16.     "7" />  
  17.    

两个类如下: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.         cl = new OnClickListener(){  
  18.             @Override  
  19.             public void onClick(View arg0) {  
  20.                 // TODO Auto-generated method stub  
  21.                 Intent intent = new Intent();    
  22.                 intent.setClass(TestBundle.this, Target.class);    
  23.                 Bundle mBundle = new Bundle();    
  24.                 mBundle.putString("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();    //得到传过来的bundle  
  11.         String data = bundle.getString("Data");//读出数据    
  12.         setTitle(data);    
  13.   
  14.     }    
  15. }    

布局文件:

main.xml

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


target.xml
[java]  view plain copy
  1. <?xml version="1.0" encoding="utf-8"?>  
  2. "http://schemas.android.com/apk/res/android"  
  3.     android:orientation="vertical"  
  4.     android:layout_width="fill_parent"  
  5.     android:layout_height="fill_parent"  
  6.     >  
  7.     android:layout_width="fill_parent"   
  8.     android:layout_height="wrap_content"   
  9.     android:text="@string/target"  
  10.     />  
  11.   

String.xml

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

结果:


跳转结果:

文章出处:http://blog.csdn.net/randyjiawenjie/article/details/6651437

更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. 类和 Json对象
  4. Android8.1 系统修改默认的wifi直连名字
  5. Android的Listview用法总结和Adapter的使用
  6. android代码分析,及Terminal使用
  7. Android传感器
  8. android中滑动SQLite数据库分页加载
  9. Android上实现zlib解压缩的方法 Inflater用法

随机推荐

  1. 《Android经验分享》周刊第10期
  2. Android 显示系统键盘搜索按键,实现搜索功
  3. android2.3 api demo 学习系列(1)--apidemo
  4. Android(安卓)Cursor自动更新的实现和原
  5. Android: Binder
  6. android 解决getColor()方法过时
  7. 学习Android到底能赚多少钱?
  8. 项目实践之android联网操作
  9. Android中moveTo、lineTo、quadTo、cubic
  10. Android跨进程通信-AIDL