《Android应用程序设计》张思民编著
第4章 多个用户界面的 程序设计
《Android应用程序设计》张思民编著
主要内容4.1 页面切换与传递参数值 4.2 菜单Menu 4.3 对话框
《Android应用程序设计》张思民编著
4.1 页面切换与传递参数值
《Android应用程序设计》张思民编著
4.1.1 传递参数组件Intent Intent是android系统一种运行时的绑定机制, 在应用程序运行时连接两个不同组件。在 android 的应用程序中不管是页面切换,还是 传递数据,或是调用外部程序,都可能要用到 Intent。Intent负责对应用中某次操作的动作、 动作涉及数据、附加数据进行描述,Android 则根据此Intent的描述,负责找到对应的组件, 将 Intent传递给调用的组件,并完成组件的 调用。
《Android应用程序设计》张思民编著
4.1.2 Activity页面切换Activity跳转与传递参数值主要通过Intent类协 助实现。在一个Activity页面中启动另一个 Activity页面的运行,是最简单的Activity页 面切换方式。其步骤如下: (1)首先创建一个Intent对象,其构造方法为: Intent intent = new Intent( 当前 Activity.this, 另一Activity.class); (2)然后调用Activity的 startActivity(intent)方法,切换到另一个 Activity页面。
《Android应用程序设计》张思民编著
【例4-1】从一个Activity页面启动另一个Activity页 面示例。 在本项目中,要建立两个页面文件及两个控制 文件: 第一个页面的界面布局文件为activity_main.xml, 控制文件为MainActivity.java; 第二个页面的界面布局文件为second.xml,控制文 件为secondActivity.java。
还要修改配置文件AndroidManifest.xml。(代码见教材)
《Android应用程序设计》张思民编著
4.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的字符。
《Android应用程序设计》张思民编著
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);
《Android应用程序设计》张思民编著
(2)在另一页面Activity B端 从Intent中获取Bundle对象 bunde = this.getIntent().getExtras(
); 从Bundle对象中按"键-值"对的键名获取对应数据值 String str = bunde.getString("text");
《Android应用程序设计》张思民编著
图4.3
应用Intent在Activity页面之间传递数据
《Android应用程序设计》张思民编著
【例4-2】从第一个Activity页面传递数据到第二个 Activity页面示例。
(代码见教材)
《Android应用程序设计》张思民编著
4.2 菜单Menu
《Android应用程序设计》张思民编著
一个菜单(Menu)由多个菜单选项组成, 选择一个菜单项就可以引发一个动作事 件。 在Android系统中,菜单可以分为三类: 选项菜单(Option Menu),上下文菜单 (Context Menu)以及子菜单(Sub Menu)。
《Android应用程序设计》张思民编著
4.2.1 选项菜单(Option Menu) 选项菜单需要通过按下设备的Menu键来 显示。当按下设备上的Menu键后,在屏 幕底部弹出一个菜单,这个菜单称作选 项菜单(OptionsMenu)。
《Android应用程序设计》张思民编著
1、Activity中创建菜单的方法Activity实现选项菜单的回调方法方 法 说 明
onCreateOptionMenu(Menu 用于初始化菜单,menu为 Menu对象实例。 menu)onPrepareOptionsMenu(Me 改变菜单状态,在菜单显示 nu menu) 前调用。 onOptionsMenuClosed(Men 菜单被关闭时调用。 u menu) onOptionsItemSelected(M 菜单项被点击时调用,即菜 enuItem item) 单项的监听方法。
《Android应用程序设计》张思民编著
2、菜单Menu 设计选项菜单需要用到Menu、MenuItem接口。 一个Menu对象代表一个菜单,Menu对象中可以 添加菜单项MenuItem对象,也可以添加子菜单 SubMenu。 菜单Menu使用add(int groupId, int itemId, int order, CharSequence title) 方法添加一 个菜单项。 add()方法中的四个参数,依次是:(1)组别; (2)Id,这个很重要,Android根据这个Id来确定不同的菜单; (3)顺序,哪个菜单项在前面由这个参数的大小决定; (4)文本,菜单项的显示文本。