• 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官网去参考。

  • 相关阅读:
    ue4 材质表达式分类
    UE4材质特别属生记录
    tangent space与object space
    better-scroll插件 api
    better-scroll 与 Vue 结合
    git 简介
    vue 插件
    前端小程序——js+canvas 给图片添加水印
    使用Node.js给图片加水印的方法
    Vue框架 周期
  • 原文地址:https://www.cnblogs.com/mrray/p/6178978.html
Copyright © 2020-2023  润新知