http://blog.csdn.net/randyjiawenjie/article/details/6651437


根据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. BundlemBundle=newBundle();
(2)bundle类中加入数据(key -value的形式,另一个activity里面取数据的时候,就要用到key,找出对应的value)

[java] view plain copy
  1. mBundle.putString("Data","datafromTestBundle");

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

[cpp] view plain copy
  1. Intentintent=newIntent();
  2. intent.setClass(TestBundle.this,Target.class);
  3. intent.putExtras(mBundle);
完整代码如下:

android mainfest.xml如下:

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

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

类1:TestBundle类:

[java] view plain copy
  1. importandroid.app.Activity;
  2. importandroid.content.Intent;
  3. importandroid.os.Bundle;
  4. importandroid.view.View;
  5. importandroid.view.View.OnClickListener;
  6. importandroid.widget.Button;
  7. publicclassTestBundleextendsActivity{
  8. privateButtonbutton1;
  9. privateOnClickListenercl;
  10. publicvoidonCreate(BundlesavedInstanceState){
  11. super.onCreate(savedInstanceState);
  12. setContentView(R.layout.main);
  13. button1=(Button)findViewById(R.id.button1);
  14. cl=newOnClickListener(){
  15. @Override
  16. publicvoidonClick(Viewarg0){
  17. //TODOAuto-generatedmethodstub
  18. Intentintent=newIntent();
  19. intent.setClass(TestBundle.this,Target.class);
  20. BundlemBundle=newBundle();
  21. mBundle.putString("Data","datafromTestBundle");//压入数据
  22. intent.putExtras(mBundle);
  23. startActivity(intent);
  24. }
  25. };
  26. button1.setOnClickListener(cl);
  27. }
  28. }

类2: Target

[java] view plain copy
  1. importandroid.app.Activity;
  2. importandroid.os.Bundle;
  3. publicclassTargetextendsActivity{
  4. publicvoidonCreate(BundlesavedInstanceState){
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.target);
  7. <spanstyle="color:#ff6600;">Bundlebundle=getIntent().getExtras();</span>//得到传过来的bundle
  8. Stringdata=bundle.getString("Data");//读出数据
  9. setTitle(data);
  10. }
  11. }

布局文件:

main.xml

[java] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="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. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="@string/hello"
  11. />
  12. <Button
  13. android:layout_width="fill_parent"
  14. android:layout_height="wrap_content"
  15. android:text="@string/button"
  16. android:id="@+id/button1"
  17. />
  18. </LinearLayout>


target.xml
[java] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="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. <TextView
  8. android:layout_width="fill_parent"
  9. android:layout_height="wrap_content"
  10. android:text="@string/target"
  11. />
  12. </LinearLayout>

String.xml

[java] view plain copy
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <resources>
  3. <stringname="hello">HelloWorld,TestBundle!</string>
  4. <stringname="app_name">测试Bundle用法</string>
  5. <stringname="button">点击跳转</string>
  6. <stringname="target">来到targetactivity</string>
  7. </resources>

结果:


跳转结果:


更多相关文章

  1. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. 类和 Json对象
  4. Android上MediaScanner是如何工作的
  5. EditText实时判断输入字符数
  6. Android中创建与几种解析xml的方法!
  7. Android(安卓)studio 使用AIDL 无法import class问题解决
  8. android中调用金山词霸
  9. Android之service实例

随机推荐

  1. css 媒体查询(响应式布局),元素定位与fle
  2. 响应式布局
  3. Linux下安装MongoDB的实现步骤
  4. 定位登录页面/flex布局
  5. 浅谈Go1.18中的泛型编程
  6. idea中lombok的用法
  7. 绝对单位px和相对单位:em,rem,vh,vw和布局
  8. 定位实战:模态框
  9. 定位与定位元素
  10. 表格、表单