• [转]Bundle对象的使用


    Bundle对象的使用  

     
     

    引用自:http://www.shunix.com/bundle-usage-642/

    在Android开发中,如果要通过一个Activity启动另外一个Activity,需要调用startActivity()函数,这个函数的参数是一个Intent对象,这个对象通常的初始化方式如下:

    Intent intent = new Intent();
    intent.setClass(this,SecondActivity.class);
    startActivity(intent);
    

    这样就完成了一个新的Activity的启动,但是这种启动方式两个Activity之间不会有任何的数据传递,很多情况下,我们遇到的往往是前一个Activity要把数据传递给新启动的Activity,这就要用到Bundle对象了。
    比如在第一个Activity中,我们获取了身高和性别两种数据,需要传递给新启动的Activity,那么就要把这些数据封装进Bundle对象里面,再把Bundle对象assign给Intent,作为starActivity()函数的参数。
    实现代码如下:

    Intent intent = new Intent();
    intent.setClass(this,SecondActivity.class);
    //封装Bundle对象
    Bundle bundle = new Bundle();
    bundle.putDouble("height",height);//height为double型变量
    bundle.putString("sex",sex);//sex为string型变量
    //把Bundle对象assign给Intent
    intent.putExtras(bundle);
    startActivity(intent);
    

    第二个Activity相应的也要接收数据,方法也很简单,先从Intent对象中分离Bundle,再按照相同方法提取数据。
    实现代码如下:

    Bundle bundle1=this.getIntent().getExtras();
    String sex=bundle1.getString("sex");
    double height=bundle1.getDouble("height");
    

    值得注意的是,如果程序中有多个Activity,要在AndroidManifest.xml中声明,声明一个Activity格式如下:

    <activity android:name="SecondActivity"></activity>

    当存在多个Activity时,必须指定一个最先启动的Activity,也是在AndroidManifest.xml中声明,声明方式如下:

    <activity android:name="SecondActivity">
         <intent-filter>
              <action android:name="android.intent.action.MAIN"/>
              <category android:name="android.intent.category.LAUNCHER"/>
         </intent-filter>
    </activity>
    

    Bundle对象还有其他很多种对不同数据类型的操作方法,比如getBoolean等,具体可以到Android官网去参考。

  • 相关阅读:
    第五周笔记
    第四周笔记——复制文件(可读时间)
    第三周笔记
    java第6次作业
    java第五次作业
    java第四次作业
    java第三次作业
    第一周Java笔记
    计划进度表
    第六次作业
  • 原文地址:https://www.cnblogs.com/yunqingabc/p/4301727.html
Copyright © 2020-2023  润新知