即使在今天发现自己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类

Bundle mBundle = new Bundle(); 
(2)bundle类中增加数据(key -value的形式,还有一个activity里面取数据的时候,就要用到key,找出相应的value)

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

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

Intent intent = new Intent();  intent.setClass(TestBundle.this, Target.class);  intent.putExtras(mBundle);
完整代码例如以下:

android mainfest.xml例如以下:

<?xml version="1.0" encoding="utf-8"?

><manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.tencent.test" android:versionCode="1" android:versionName="1.0"> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".TestBundle" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity><activity android:name=".Target"></activity> </application> <uses-sdk android:minSdkVersion="7" /></manifest>


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

类1:TestBundle类:

import android.app.Activity;  import android.content.Intent;  import android.os.Bundle;  import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class TestBundle extends Activity {  private Button button1;private OnClickListener cl;     public void onCreate(Bundle savedInstanceState) {      super.onCreate(savedInstanceState);      setContentView(R.layout.main);            button1 = (Button) findViewById(R.id.button1);    cl = new OnClickListener(){    @Override    public void onClick(View arg0) {// TODO Auto-generated method stubIntent intent = new Intent();  intent.setClass(TestBundle.this, Target.class);  Bundle mBundle = new Bundle();  mBundle.putString("Data", "data from TestBundle");//压入数据  intent.putExtras(mBundle);  startActivity(intent);}        };        button1.setOnClickListener(cl);    }}  

类2: Target

import android.app.Activity;  import android.os.Bundle;  public class Target extends Activity{      public void onCreate(Bundle savedInstanceState) {              super.onCreate(savedInstanceState);          setContentView(R.layout.target);          Bundle bundle = getIntent().getExtras();    //得到传过来的bundle        String data = bundle.getString("Data");//读出数据          setTitle(data);      }  }  

布局文件:

main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    ><TextView      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/hello"    /><Button      android:layout_width="fill_parent"     android:layout_height="wrap_content"     android:text="@string/button"    android:id = "@+id/button1"    /> </LinearLayout>


target.xml
<?xml version="1.0" encoding="utf-8"?

><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" ><TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/target" /></LinearLayout>


String.xml

<?

xml version="1.0" encoding="utf-8"?><resources> <string name="hello">Hello World, TestBundle!</string> <string name="app_name">測试Bundle使用方法</string> <string name="button">点击跳转</string> <string name="target">来到target activity</string></resources>


结果:


跳转结果:



更多相关文章

  1. Android中jetpack讲解(详)--课外拓展知识讲解
  2. Android(安卓)Studio 实现实现学生信息的增删改查 -源代码 四(Ser
  3. 33、Android(安卓)中子fragment控制父对象改变布局
  4. android ListView没有数据时信息显示
  5. Android之SharePreference
  6. Android日记 获取SharedPreferences三种方式及使用
  7. android bluetooth 移植相关注意事项
  8. mybatisplus的坑 insert标签insert into select无参数问题的解决
  9. python起点网月票榜字体反爬案例

随机推荐

  1. Android(安卓)SVG矢量资源的使用方法
  2. Android开发从入门到精通
  3. Android属性动画优化(更高效的使用属性动
  4. Android(安卓)- menu 相关
  5. Android的系统的Binder机制(一)
  6. 构建Android开发环境
  7. Android(安卓)Intent个人介绍
  8. android消息机制之二--Handler
  9. android底层开发
  10. Android分区查看