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

今天发现自己连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. BundlemBundle= new Bundle();

(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= new Intent();
  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. 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. public class TestBundle extends Activity{
  8. private Buttonbutton1;
  9. private OnClickListenercl;
  10. public void onCreate(BundlesavedInstanceState){
  11. super .onCreate(savedInstanceState);
  12. setContentView(R.layout.main);
  13. button1=(Button)findViewById(R.id.button1);
  14. cl=new OnClickListener(){
  15. @Override
  16. public void onClick(Viewarg0){
  17. //TODOAuto-generatedmethodstub
  18. Intentintent=new Intent();
  19. intent.setClass(TestBundle.this ,Target. class );
  20. BundlemBundle=new Bundle();
  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. import android.app.Activity;
  2. import android.os.Bundle;
  3. public class Target extends Activity{
  4. public void onCreate(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 项目开发
  5. 利用Handler来更新android的UI
  6. android 背景圆角以及图片圆角处理
  7. Android中文API(139) —— SQLiteOpenHelper
  8. android中自定义Theme以及TitleBar
  9. Android中pm命令用法详解

随机推荐

  1. c语言define什么意思
  2. c语言颜色代码
  3. c++如何读取excel
  4. c语言的注释定界符是什么
  5. vb数组怎么定义
  6. c程序怎么编写x的y次方
  7. devc如何恢复默认设置
  8. mod在vb中什么意思
  9. C语言注释详解
  10. putchar("\n")是什么意思