zoukankan      html  css  js  c++  java
  • Bundle对象的使用

    在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实现 洛谷 P1060 开心的金明
    (Java实现) 洛谷 P1605 迷宫
    (Java实现) 洛谷 P1605 迷宫
    (Java实现)洛谷 P1093 奖学金
    (Java实现)洛谷 P1093 奖学金
    Java实现 洛谷 P1064 金明的预算方案
    Java实现 洛谷 P1064 金明的预算方案
    (Java实现) 洛谷 P1031 均分纸牌
    QT树莓派交叉编译环开发环境搭建(附多个exe工具下载链接)
    武则天红人对唐睿宗的桃色报复(如此缺少城府,注定了要在宫廷中过早地出局)
  • 原文地址:https://www.cnblogs.com/mrray/p/6178978.html
Copyright © 2011-2022 走看看