
第3章多个用户界面的 程序设计
第3章 多个用户界面的 程序设计

3.1页面切换与传递参数值
3.1 页面切换与传递参数值

3.1.1 传递参数组件Intent > Intent是android系统一种运行时的绑定机制, 在应用程序运行时连接两个不同组件。在 android的应用程序中不管是页面切换,还是 传递数据,或是调用外部程序,都可能要用到 Intent。Intent负责对应用中某次操作的动作、 动作涉及数据、附加数据进行描述,Android 则根据此Intent的描述,负责找到对应的组件, 将Intent传递给调用的组件,并完成组件的调 用
3.1.1 传递参数组件Intent ➢ Intent是android系统一种运行时的绑定机制, 在应用程序运行时连接两个不同组件。在 android的应用程序中不管是页面切换,还是 传递数据,或是调用外部程序,都可能要用到 Intent。Intent负责对应用中某次操作的动作、 动作涉及数据、附加数据进行描述,Android 则根据此Intent的描述,负责找到对应的组件, 将Intent传递给调用的组件,并完成组件的调 用

3.1.2 Activity页面切换 Activityl跳转与传递参数值主要通过Intent类协 助实现。在一个Activity页面中启动另一个 Activity页面的运行,是最简单的Activity页 面切换方式。其步骤如下: (1)首先创建一个Intent对象,其构造方法为: Intent intent=new Intent(当前 Activity.this,-Activity.class); (2)然后调用Activity的 startActivity(intent).方法,切换到另一个 Activity.页面
3.1.2 Activity页面切换 Activity跳转与传递参数值主要通过Intent类协 助实现。在一个Activity页面中启动另一个 Activity页面的运行,是最简单的Activity页 面切换方式。其步骤如下: (1)首先创建一个Intent对象,其构造方法为: Intent intent = new Intent(当前 Activity.this, 另一Activity.class); (2)然后调用Activity的 startActivity(intent)方法,切换到另一个 Activity页面

【例3-1】从一个Activity页面启动另一个Activity页 面示例。 >在本项目中,要建立两个页面文件及两个控制 文件: >第一个页面的界面布局文件为activity main.ml, 控制文件为MainActivity.java; >第二个页面的界面布局文件为second.ml,控制文 件为secondActivity.java。 >还要修改配置文件AndroidManifest.xml。 1137 11:38 ex31(页面切换) ex3_1 这是第二个页面 (代码见教材) 页面切换 切换到另一页面
【例3-1】从一个Activity页面启动另一个Activity页 面示例。 ➢ 在本项目中,要建立两个页面文件及两个控制 文件: ➢第一个页面的界面布局文件为activity_main.xml, 控制文件为MainActivity.java; ➢第二个页面的界面布局文件为second.xml,控制文 件为secondActivity.java。 ➢ 还要修改配置文件AndroidManifest.xml。 (代码见教材)

3.1.3 应用Intent在Activity页面之间传递数据 1、Bundle类 > Bundle类是一个用于将字符串与某组件对象建 立映射关系的组件。Bundle组件与Intent配合 使用,可在不同的Activity之间传递数据。 Bundle类的常用方法如下: > putString(String key,String value): 字符串用“键一值”形式存放到Bundle对象中; >remove(String key):移除指定key的值; >getString(String key):获取指定key的字符
3.1.3 应用Intent在Activity页面之间传递数据 1、Bundle类 ➢ Bundle类是一个用于将字符串与某组件对象建 立映射关系的组件。Bundle组件与Intent配合 使用,可在不同的Activity之间传递数据。 Bundle类的常用方法如下: ➢ putString(String key, String value): 把 字符串用“键-值”形式存放到Bundle对象中; ➢ remove(String key):移除指定key的值; ➢ getString(String key):获取指定key的字符

2、应用Intent在不同的Activity之间传递数据 (1)在页面Activity A端 >创建Intent对象和Bundle对象 Intent intent new Intent(); Bundle bundle new Bundle(); >为Intent指定切换页面,用Bundle存放"键一值"对 数据 intent.setClass(MainActivity.this, secondActivity.class); bundle.putString("text",txt.getText().toString(); >将Bundle对象传递给Intent intent.putExtras(bundle);
2、应用Intent在不同的Activity之间传递数据 (1)在页面Activity A端 ➢创建Intent对象和Bundle对象 Intent intent = new Intent(); Bundle bundle = new Bundle(); ➢为Intent指定切换页面,用Bundle存放"键-值"对 数据 intent.setClass(MainActivity.this, secondActivity.class); bundle.putString("text", txt.getText().toString()); ➢将Bundle对象传递给Intent intent.putExtras(bundle);

(2)在另一页面Activity B:端 >从Intent中获取Bundle对象 bundle this.getintent().getExtras() >从Bundle对象中按"键一值"对的键名获取对应数据值 String str bundle.getString("text");
(2)在另一页面Activity B端 ➢从Intent中获取Bundle对象 bundle = this.getIntent().getExtras(); ➢从Bundle对象中按"键-值"对的键名获取对应数据值 String str = bundle.getString("text");

图3.3 应用Intent在Activity页面之间传递数据 Activity A Activity B (1)用Bundle对象存 1)获取Intent 放要传递的数据 中的Bundle对象 2)把Bundle对象存 Intent 2)获取Bundle对象中的数据 放到Intent中
图3.3 应用Intent在Activity页面之间传递数据

【例3-2】从第一个Activity页面传递数据到第二个 Activity页面示例。 >(代码见教材) 留面☑12:15PM □@12:15PM ex3 2 ex3 2 顶面切换 返回第一个页面 切换到另一页面 Hello World Hello World
【例3-2】从第一个Activity页面传递数据到第二个 Activity页面示例。 ➢(代码见教材)