AndroidSDK开发之创建对话框

上传人:xy****7 文档编号:44537172 上传时间:2018-06-09 格式:DOC 页数:5 大小:32.50KB
返回 下载 相关 举报
AndroidSDK开发之创建对话框_第1页
第1页 / 共5页
AndroidSDK开发之创建对话框_第2页
第2页 / 共5页
AndroidSDK开发之创建对话框_第3页
第3页 / 共5页
AndroidSDK开发之创建对话框_第4页
第4页 / 共5页
AndroidSDK开发之创建对话框_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《AndroidSDK开发之创建对话框》由会员分享,可在线阅读,更多相关《AndroidSDK开发之创建对话框(5页珍藏版)》请在金锄头文库上搜索。

1、Android SDK 开发之创建对话框 创建对话框 一个对话框一般是一个出现在当前 Activity 之上的一个小窗口. 处于下面 的 Activity 失去焦点, 对话框接受所有的用户交互. 对话框一般用于提示信息和与当前应用 程序直接相关的小功能. Android API 支持下列类型的对话框对象: 警告对话框 AlertDialog: 一个可以有 0 到 3 个按钮, 一个单选框或复选框的列表的对话框. 警告对话框 可以创建大多数的交互界面, 是推荐的类型. 进度对话框 ProgressDialog: 显示一个进 度环或者一个进度条. 由于它是 AlertDialog 的扩展, 所以它

2、也支持按钮. 日期选择对话 框 DatePickerDialog: 让用户选择一个日期. 时间选择对话框 TimePickerDialog: 让用 户选择一个时间. 如果你希望自定义你的对话框, 可以扩展 Dialog 类. Showing a Dialog 显示对话框 一个对话框总是被创建和显示为一个 Activity 的一部分. 你应该在 Activity 的 onCreateDialog(int) 中创建对话框. 当你使用这个回调函数时,Android 系统自动 管理每个对话框的状态并将它们和 Activity 连接, 将 Activity 变为对话框的“所有者“. 这样, 每个对话框从

3、 Activity 继承一些属性. 例如,当一个对话框打开时, MENU 键会显示 Activity 的菜单, 音量键会调整 Activity 当前使用的音频流的音量. 注意: 如果你希望在 onCreateDialog()方法之外创建对话框, 它将不会依附在 Activity 上. 你可以使用 setOwnerActivity(Activity)来将它依附在 Activity 上. 当你希望显示一个对话框时, 调用 showDialog(int)并将对话框的 id 传给它. 当一个对话框第一次被请求时,Android 调用 onCreateDialog(int). 这里是你初始化对话框的地方

4、. 这个回调函数传入的 id 和 showDialog(int)相同. 创建对话框之后,将返回被创建的对象. 在对话框被显示之前, Android 还会调用 onPrepareDialog(int, Dialog). 如果你希望每次显示对话框时有动态更改的 内容, 那么就改写这个函数. 该函数在每次一个对话框打开时都调用. 如果你不定义该函数, 则对话框每次打开都是一样的. 该函数也会传入对话框的 id 以及你在 onCreateDialog()中创 建的 Dialog 对象. 最好的定义 onCreateDialog(int) 和 onPrepareDialog(int, Dialog) 的

5、方 法就是使用一个 switch 语句来检查传入的 id. 每个 case 创建相应的对话框. 例如, 一个游 戏使用两个对话框: 一个来指示游戏暂停,另一个指示游戏结束. =黑软基地手机资讯 频道= 首先, 为它们定义 ID: static final int DIALOG_PAUSED_ID = 0; static final int DIALOG_GAMEOVER_ID = 1; 然后, 在 onCreateDialog(int)中加入一个 switch 语句: protected Dialog onCreateDialog(int id) Dialog dialog; switch(i

6、d) case DIALOG_PAUSED_ID: / do the work to define the pause Dialog break; case DIALOG_GAMEOVER_ID: / do the work to define the game over Dialog break; default: dialog = null; return dialog; 注意: 在这个例子中, case 语句 为空因为定义 Dialog 的程序在后面会有介绍. 在需要显示对话框是, 调用 showDialog(int), 传入对话框的 id: showDialog(DIALOG_PAUS

7、ED_ID); Dismissing a Dialog 解除对话框 当你准备关闭对话框时, 你可以使用 dismiss()函数. 如果需要的 话, 你也可以从 Activity 调用 dismissDialog(int), 二者效果是一样的. 如果你使用 onCreateDialog(int)来管理你的对话框的状态, 那么每次你的对话框被解除时, 该对话框对 象的状态会被 Activity 保存. 如果你决定你不再需要这个对象或者需要清除对话框的状态, 那么你应该调用 removeDialog(int). 这将把所有该对象的内部引用移除, 如果该对话框在显 示的话将被解除. Using dis

8、miss listeners 使用解除监听器 如果你希望在对话框解 除时运行某些程序, 那么你应该给对话框附加一个解除监听器. 首先定义 DialogInterface.OnDismissListener 接口. 这个接口只有一个方法, onDismiss(DialogInterface), 该方法将在对话框解除时被调用. 然后将你的 OnDismissListener 实现传给 setOnDismissListener(). 然而,注意对话框也可以被“取消“. 这是一个特殊的情形, 它意 味着对话框被用户显式的取消掉. 这将在用户按下“back“键时, 或者对话框显式的调用cancel()(

9、按下对话框的 cancel 按钮)时发生. 当一个对话框被取消时, OnDismissListener 将仍 然被通知, 但如果你希望在对话框被显示取消(而不是正常解除)时被通知, 则你应该使用 setOnCancelListener()注册一个 DialogInterface.OnCancelListener. Creating an AlertDialog 创建警告对话框 =黑软基地手机资讯频道= An AlertDialog is an extension of the Dialog class. It is capable of constructing most dialog use

10、r interfaces and is the suggested dialog type. You should use it for dialogs that use any of the following features: 一 个警告对话框是对话框的一个扩展. 它能够创建大多数对话框用户界面并且是推荐的对话 框类新星. 对于需要下列任何特性的对话框,你都应该使用它: 一个标题 一条文字 消息 1 个-3 个按钮 一个可选择的列表(单选框或者复选框) 要创建一个 AlertDialog, 使用 AlertDialog.Builder 子类. 使用 AlertDialog.Builder

11、(Context)来得到一个 Builder, 然后使用该类的公有方法来定义 AlertDialog 的属性. 设定好以后, 使用 create()方 法来获得 AlertDialog 对象. 下面的主题展示了如何为 AlertDialog 定义不同的属性, 使 用 AlertDialog.Builder 类. 如果你使用这些示例代码, 你可以在 onCreateDialog()中返回最后 的 Dialog 对象来获得图片中对话框的效果. Adding buttons 增加按钮 要创建一个如图所示 的窗口, 使用 set.Button()方法: AlertDialog.Builder buil

12、der = new AlertDialog.Builder(this); builder.setMessage(“Are you sure you want to exit?“) .setCancelable(false) .setPositiveButton(“Yes“, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int id) MyActivity.this.finish(); ) .setNegativeButton(“No“, new DialogInterface

13、.OnClickListener() public void onClick(DialogInterface dialog, int id) dialog.cancel(); ); AlertDialog alert = builder.create(); 首先,使用 setMessage(CharSequence)为对话框增加一条消息。 然后, 开始连续调用方法, 使用 setCancelable(boolean)将对话框设为不可取消(不能使用 back 键来取消)。对每一个按钮,使用 set.Button()方法,该方法接受按钮名称和一个 DialogInterface.OnClickLi

14、stener,该监听器定义了当用户选择该按钮时应做的动作。 =黑软基地手机资讯频道= 注意:对每种按钮类型,只能为 AlertDialog 创建一个。也就是说,一个 AlertDialog 不能有两个以上的“positive“按钮。这使 得可能的按钮数量最多为三个:肯定、否定、中性。这些名字和实际功能没有联系,但是 将帮助你记忆它们各做什么事情。 Adding a list 增加列表 要创建一个具有可选项的 AlertDialog,使用 setItems()方法: final CharSequence items = “Red“, “Green“, “Blue“;AlertDialog.Bui

15、lder builder = new AlertDialog.Builder(this); builder.setTitle(“Pick a color“); builder.setItems(items, new DialogInterface.OnClickListener() public void onClick(DialogInterface dialog, int item) Toast.makeText(getApplicationContext(), itemsitem, Toast.LENGTH_SHORT).show(); ); AlertDialog alert = builder.create(); 首先增加一个标题。然后使用 setItems()增加一个可选列表,该列表接 受一个选项名称的列表和一个 DialogInterface.OnClickListener, 后者定义了选项对应的响应。Adding checkboxes and radio buttons 增加单选框和复选框 要创建一个带有多选列表或者 单选列表的对话框, 使用 setMultiChoiceItems()和 setSingleChoiceItems()方法。如果你在 onCr

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号