今天发现自己连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);          <span style="color: rgb(255, 102, 0);">Bundle bundle = getIntent().getExtras();   </span> //得到传过来的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. mybatisplus的坑 insert标签insert into select无参数问题的解决
  2. python起点网月票榜字体反爬案例
  3. 类和 Json对象
  4. android中判断网络和WIFI是否连接
  5. Android通信详解
  6. android各版本的差异
  7. Android(安卓)GPS架构分析
  8. android 竖屏activity跳转横屏activity返回时数据消失
  9. Android(安卓)Testing Fundamentals 1, unit test

随机推荐

  1. 7.1.2 DatePicker结合案例详解
  2. android 验证手机号和邮箱格式
  3. Android应用程序获取ROOT权限代码
  4. Android 6.0 Math代替FloatMath
  5. android2.3中支持的语言对照
  6. android 横竖屏切换与数据保存
  7. Android 检测程序异常崩溃,重启应用
  8. Android service里面启动activity和alert
  9. 设计模式--静态工厂设计模式在android中
  10. android读取data/data/包名/file路径下的