Android菜单和对话框PPT课件_第1页
Android菜单和对话框PPT课件_第2页
Android菜单和对话框PPT课件_第3页
Android菜单和对话框PPT课件_第4页
Android菜单和对话框PPT课件_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

主讲 XXX 第4章菜单和对话框 菜单是用户界面中最常见的元素之一 使用非常频繁 在手机应用程序中 由于受到手机屏幕大小的制约 菜单在手机应用中的使用减少很多 但是依然有手机应用程序会添加菜单 当图形用户界面在前台运行时 如果用户按下手机上的Menu键 就会在屏幕底端弹出相应的选项菜单 但其对应的功能是需要程序开发者编程实现的 如果在应用程序开发中没有实现其功能 则在程序运行时按下手机上的Menu键是不会有作用的 在Android中 菜单被分为如下三种 选项菜单 OptionsMenu 上下文菜单 ContextMenu 和子菜单 SubMenu 1 本章主要内容 4 1选项菜单和子菜单4 2上下文菜单4 3Android中对话框4 4提示信息 2 4 1选项菜单和子菜单 一个Menu对象代表一个菜单 可以添加菜单项MenuItem 也可以添加子菜单SubMenu Android中的菜单是显示在Activity之上的元素 分为OptionsMenu ContextMenu SubMenu等多种类型 通常通过回调方法来创建菜单并处理菜单按下的事件 其中 SubMenu代表一个普通菜单 可以包含一到多个菜单项 ContextMenu代表一个子菜单 由一到多个菜单项组成 Menu类中定义了若干个add 和addSubMenu 方法 其中 add 用于添加菜单项 addSubMenu 用于添加子菜单 这些重载方法的区别在于是否将子菜单 菜单项添加到指定菜单中 是否使用资源文件中的字符串资源来设置标题等 SubMenu继承了Menu 它代表了一个子菜单 除了Menu的方法外还有设置菜单头图标的方法SetHeaderIcon Drawableicon 设置菜单头标题的方法SetHeaderTitle inttitleRes 和使用View来设置菜单头的方法SetHeaderView Viewview 等设置属性的方法 在应用程序中要添加菜单或者子菜单的步骤如下 1 需要重写Activity的onCreateOptionsMenu Menumenu 方法 在该方法中创建菜单 添加其菜单项或者子菜单 2 对其触发的事件进行监听 如果希望应用程序能够响应菜单项的单击事件重写Activity的onOptionsItemSelected MenuItemmi 这样才能够实现根据不同的菜单选项执行不同操作 还可以用户自定义菜单项的监听器 3 4 1 1创建OptionsMenu菜单实例 选项菜单OptionsMenu默认样式是在屏幕底部弹出一个菜单 其实现方式有两种 第一种是通过Menu类在创建菜单 第二种是通过XML文件布局文件添加菜单的样式 下面通过实例展示如何使用两种方式创建选项菜单 案例 使用OptionsMenu设计一个界面 效果如图4 1所示 当选择了某个选项时 显示一个提示信息 方法一 通过Menu类来创建菜单 重载onCreateOptionsMenu Menumenu 方法 并在此方法中通过Menu类的add 方法添加菜单项该方法的四个参数 依次是代表组别 Id 显示顺序和菜单的显示文本 方法二 通过XML布局实现菜单 通过Layout布局创建菜单对应的xml文件 然后在onCreateOptionsMenu中设置menu为定义的res menu menu xml 其具体实现步骤见书 4 4 1 2监听菜单事件 除了重写onOptionsItemSelected MenuItemitem 方法处理菜单的单击事件外 可以通过菜单项的setOnMenuItemClickListener方法为不同的菜单项分别绑定监听器 采用这种方式无需为每个菜单项指定ID 而是通过获取所添加的MenuItem对象 然后给对象绑定监听者 以下给出 delete 菜单项的创建 事件注册与响应 由于篇幅有限 其他的实现与其相同 publicbooleanonCreateOptionsMenu Menumenu MenuItemdeleteItem menu add Menu NONE Menu FIRST 1 5 删除 setIcon android R drawable ic menu delete deleteItem setOnMenuItemClickListener newOnMenuItemClickListener publicbooleanonMenuItemClick MenuItemarg0 Toast makeText MenuDemo2 this 删除菜单被点击了 Toast LENGTH LONG show returnfalse returntrue 5 说明 1 该方法实现效果与前一个完全相同 区别仅在于处理菜单事件的监听方式不同 一般来说 通过重载onOptionsItemSelected MenuItemitem 方法处理菜单的单击事件更加简洁 因为所有的事件处理代码都控制在该方法内 通过绑定事件监听器使程序具有更清晰的逻辑性 但是代码显得有些臃肿 2 如果是通过XML布局文件来实现的菜单 可以通过MenuItemdelete MenuItem findViewById R id delete 语句获取菜单项对象 3 如果希望所创建的菜单项是单选菜单项或多选菜单项 则可以调用菜单项的setCheckable Booleanchackable 来设置该菜单项是否可以被勾选 通过调用setGroupCheckable 设置组里的菜单是否可勾选 4 可以通过菜单项的setShortcut 方法为其设置快捷键 6 4 1 3与菜单项关联的Activity的设置 在应用程序中如果需要单击某个菜单项来启动其他Activity或者Service时 不需要开发者编写任何事件处理代码 只要调用MenuItem的setIntent Intentintent 方法即可 该方法实现把菜单项与指定的Intent关联在一起 当用户单击该菜单项时 该Intent所代表的组件将会被启动 案例 通过菜单项启动另一个Activity 效果如图4 2所示 当选择了 StarttheotherActivity 时 启动另一个Activity 步骤见书中内容 7 4 2上下文菜单 Android用ContextMenu来代表上下文菜单 类似于桌面程序的右键弹出式菜单 在Android中不是通过用户右击鼠标而得到 而是通过长时间按住界面上的元素得到事先设计好的上下文菜单 开发上下文菜单的方法与选项菜单的方法基本相似 因为ContextMenu也是Menu的子类 所以可用相同的方法为它添加菜单项 其区别在于 开发上下文菜单不是重写onCreateOptionsMenu Menumenu 方法 而是调用onCreateContextMenu ContextMenumenu Viewsource ContextMenu ContextMenuIfnomenuInfo 方法 该方法在每次启动上下文菜单时都会被调用一次 在该方法中可以通过使用add 方法添加相应的菜单项 8 开发上下文菜单的步骤如下 1 重写onCreateContextMenu 方法 2 调用Activity的registerForContextMenu Viewview 为view组件注册上下文菜单 3 重载onContextItemSelected MenuItemmi 或者绑定事件监听器 对菜单项进行事件相应 案例 定义上下文菜单 让用户进行颜色选择 根据用户所选颜色的不同来更改文本框的背景颜色 效果如图4 3所示 1 创建项目ContextMenu 2 创建ContextMenuActivity 并在onCreate 方法中通过方法为文本框注册上下文菜单 3 重载onCreateContextMenu 在该方法中创建含有 红色 绿色 蓝色 和 退出 四个菜单项的菜单 4 重载onContextItemSelected 方法对事件进行注册 9 4 3Android中对话框 Android中实现对话框可以自定义对话框 同时Android也提供了丰富的对话框支持 常用的对话框有下面4种 1 AlertDialog 功能丰富 应用最广泛 2 ProgressDialog 进度对话框 该对话框只对简单进度条封装 3 DatePickerDialog 日期选择对话框 该对话框是对DatePicker的包装 4 TimePickerDialog 时间选择对话框 是对TimePicker的包装 这四种对话框中功能最强 用法最灵活的就是AlertDialog 因此 它的应用最为广泛 10 AlertDialog是一个提示窗口 要求用户做出选择 该对话框中一般会有几个选择按钮 标题信息和提示信息 AlertDialog提供了一些方法来生成四种预定义对话框 1 带消息 带N个按钮的提示对话框 2 带列表 带N个按钮的列表对话框 3 带多个单选列表项 带N个按钮的对话框 4 带多个多选列表项 带N个按钮的对话框 AlertDialog的构造方法全部是Protected的 所以不能直接通过AlertDialog对象来创建对话框 要创建一个AlertDialog 就要用到AlertDialog Builder中的create 方法 使用AlertDialog Builder创建对话框需要了解以下几个方法 1 setTitle 为对话框设置标题 2 setIcon 为对话框设置图标 3 setMessage 为对话框设置内容 4 setView 给对话框设置自定义样式 5 setItems 设置对话框要显示的一个list 一般用于显示几个命令 6 setMultiChoiceItems 来设置对话框显示一系列的复选框 7 setNeutralButton 普通按钮 8 setPositiveButton 对话框添加 Yes 按钮 9 setNegativeButton 对话框添加 No 按钮 10 create 创建对话框 11 show 显示对话框 4 3 1提示对话框AlertDialog 11 创建AlertDialog的主要步骤如下 1 获得AlertDialog的静态内部类Builder对象 由该类创建对话框 2 通过Builder对象设置对话框的标题 按钮及按钮将要响应的事件 3 调用Builder对象的create 方法创建对话框 4 调用AlertDialog的show 方法显示对话框 案例 创建不同类型的对话框 其运行效果如以下各图所示 12 ProgressDialog类继承自AlertDialog类 同样存放在android app包中 ProgressDialog有两种形式 一种是圆圈旋转形式 另一种是水平进度条形式 可以通过属性设置来修改其形式 开发者可以通过该类提供的一系列的set方法 设置对话框中进度条的风格 进度条的最大值等属性 案例 在主界面上放置一个命令按钮 当单击命令按钮时 弹出一个进度对话框 提示后台程序正在执行 稍等片刻 其运行效果如图4 10所示 步骤见书 4 3 2进度对话框ProgressDialog 13 在Android应用中 DatePickerDialog与TimePickerDialog分别表示日期对话框和时间对话框 都是以弹出式对话框形式出现的 使用方法基本相同 前者需要实现OnDateSetListener接口中的onDateSet方法 后者需要实现OnTimeSetListener接口中的onTimeSet方法 操作步骤如下 1 创建DatePickerDialog或TimePickerDialog对象 通过它们的show 方法将其显示出来 2 为日期或时间对话框对象绑定监听者 案例 在主界面上放置两个命令按钮 显示日期 和 显示时间 当单击 显示日期 命令按钮时 弹出一个日期显示对话框 当单击 显示时间 命令按钮时 弹出一个时间显示对话框 供用户进行选择 并将显示结果在界面的文本框上显示出来 其运行效果如图4 11所示 4 3 3DatePickerDialog和TimePickerDialog 14 4 4提示信息 在某些情况下需要向用户弹出提示消息 如显示错误信息或收到短消息等 Android提供弹出消息的方式 状态栏的提醒机制等方式提示信息 下面对弹出式提示信息Toast和Notification进行简单介绍 15 Toast是Android中用来显示提示信息的一种机制 这个提示信息框用于向用户生成简单的提示信息 与对话框不同的是Toast没有焦点 显示的时间有限 信息浮动显示设定的时长后会自动消失 创建Toast的一般步骤如下 1 调用Toast的构造器或静态方法markText 创建一个Toast对象 2 调用Toast的方法设置该消息提示的对齐方式 显示内容 显示时长等属性 3 调用Toast的show 方法将其显示出来 Toast一般用于显示简单的提示信息 如果需要显示较为复杂的信息 如图片 列表等 一般用对话框来完成 也可以用Toast的setView view 添加view组件的方式来实现 该方法允许用户自定义显示内容 创建Toast常用的方法如下 Toastt Toast makeText Context msg Toast LENGTH SHORT或LENGTH LONG 例如 在运行中弹出一个Toast 其提示信息为 你的愿望能实现 Toast makeText getApplicationContext 你的愿望能实现 Toast LENGTH SHORT show 4 4 1Toast 16 Notification是Android提供的在状态栏的提醒机制 手机状态栏位于手机屏幕的最上方 那里一般显示了手机当前的网络状态 电池状态 事件等 Notification不会打断用户当前的操作 支持异步的单击事件响应 程序一般由NotificationManager来管理 NotificationManager负责发通知 清除通知等 它是一个系统Service 必须通过getSystemService 方法来获取 创建Notification的一般步骤如下 1 得到NotificationManager 通过getSystemService方法得到NotificationManager 2 构造一个Notification对象 3 设置Notification的属性参数 4 通过NotificationManager发送一个Notification 4 4 2Notification 17 在界面上放置一个命令按钮 单击命令按钮时创建一个Notification的核心代码 如下所示 得到NotificationManagerNotificationManagernotificationManager NotificationManager getSystemService Context NOTIFICATIO

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论