`
ruirui516888
  • 浏览: 136838 次
文章分类
社区版块
存档分类
最新评论

Android 里的对话框Dialog 实现机制基础

 
阅读更多

Android 里的对话框Dialog 实现机制基础

Dialogs
对话框通常都是出现在当前活动的前面,当当前活动弹出对话框后,
当前活动将失去焦点,而对话框将完成与用户交互的任务。对话框通常拿来当通知使用,临时中断用户
当前操作完成一个与当前活动直接相关的小工作,比如登录成功提示框及进度条。
Dialog 类是创建对话框的基类,然而,通常我们并不实例化一个Dialog,取而代之,我们使用如下的
子类:
AlertDialog:
一个通常可以带0,1,2个按钮,还可以包含单选或复选的列表。推荐使用,
它通常足够满足用户界面的需要了。
ProgressDialog:
显示为一个进度轮或进度条,因为它是扩展了的AlertDialog,它也同样支持按钮。
DatePickerDialog:
提供用户选择日期的对话框。
TimePickerDialog:
提供用户选择时间的对话框。
显示一个对话框
对话框通常都作为一个活动的一部分而被创建、显示,
通常我们可以重写活动内置的“onCreateDialog(int)”回调方法来创建。当我们重写了这个
回调查方法后,Android系统将自动管理对话框的状态,并将它与当前的活动关联,
某个活动将拥有对话框。也因此,对话框会继承活动的某些属性,例如:当一个对话框打开,
点击“Menu"按钮将显示此活动的"Options menu",音量键也将被活动用来调整音频流。
注意:如果对话框不是通过"onCreateDialog"方法创建的,那么意味着它没有被关联到一个活动
此时,必须调用“setOwnerActivity(Activity)”方法将它关联到一个对话框。
调用“showDialog(int)”来显示一个对话框,传递的整数是一个唯一值,用来标识当前要显示的对话框。
对话框第一次被请求时创建,系统将调用活动的“onCreateDialog(int)”,在此活动中实例化一个Dialog,
“onCreateDialog(int)”,“showDialog(int)”两个方法传入的整数是一样的。
一个对话框在显示前,系统都将调用回调方法“onPrepareDialog(int,Dialog)”,所以,如果可以通过
重写此方法可以动态修改对话框。由于"onCreateDialog(int)"只在第一次被请求时创建,所以,
后面再显示时将保持不变。"onPrepareDialog(int,Dialog)"这里的整型参数也与创建、显示时的一样。
当需要用到多个对话框的时候,我们最好在“onCreateDialog(int)”及“onPrepareDialog(int,Dialog)”
方法里Switch,通过对话框的唯一值(创建时传入的整型参数)用来判断一个每个对话框是否创建。
如:
static final int DIALOG_PAUSED_ID=0;
static final int DIALOG_GAMEOVER_ID=1;
而在“onCreateDialog(int)”回调查方法里:
protected Dialog onCreateDialog(int id)
{
Dialog dilog;
switch(id)
{
case DIALOG_PAUSED_ID:
{
//do the work to define the pause dialog
BREAK;
}
case DIAOLG_GAMEOVER_ID:
{
//
BREAK;
}
default:
dialog=null;
}
return dialog;
}
显示一个对话框:showDialog(DIALOG_GAMEOVER_ID);
---------------------------------------------------------------

清除对话框

当我们创建一个对话框并将它关联到一个活动后,活动将始终维护对话框的状态,如果确定活动不再需要对话框后,
可以让对话框调用dismiss()来自行清除,更为高效的做法是调用活动的dismissDialog(int),传递的整型数据
与创建时传入的一致。
也许有时我们需要在对话框被清除时处理一些业务,此时我们实现接口:DialogInterface.OnDismissListener,
这个接口只有一个方法:onDismiss(dialogInterface),此方法将在对话框被清除时调用。将接口的实现传递给
setOnDismissListener()。
一个对话框也可以被“取消”,如用户点出了“back”回退或点击“Cancel”按钮明确取消,此时并不会触发“onDismissListener”.
此类事件可以通过下面的方法进行捕获:DialogInterface.OnCancelListener,并 setOnCancelListener();

参考资料:http://developer.android.com/guide/topics/ui/dialogs.html


转:http://www.cnblogs.com/runner/archive/2011/12/04/2275293.html


分享到:
评论

相关推荐

    Android Dialog对话框用法实例详解

    Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int),dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过...

    Android 对话框(Dialog)大全详解及示例代码

    Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过...

    Android 对话框(Dialog)大全示例(建立你自己的对话框)

    Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过...

    属于自己的Android对话框(Dialog)自定义集合

    Activities提供了一种方便管理的创建、保存、回复的对话框机制,例如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,如果使用这些方法的话,Activity将通过...

    Android实现简洁的APP更新dialog数字进度条

    前言:现在一般的Android软件都是需要不断更新的,当你打开某个app的时候,如果有新的版本,它会提示你有新版本需要更新。当有更新时,会弹出一个提示框,点击下载,则在通知来创建一个数字进度条进行下载,下载成功...

    Android异步消息机制详解

    Android中的异步消息机制分为四个部分:Message、Handler、MessageQueue和Looper。 其中,Message是线程之间传递的消息,其what、arg1、arg2字段可以携带整型数据,obj字段可以携带一个Object对象。 Handler是处理者...

    Android-app.rar

    Android例子源码实现Windows8风格的Dialog Android例子源码强大的listview效果集合项目 Android例子源码模仿IOS音乐的可拖动导航栏功能 Android例子源码模仿安卓微信、云播雷达扫描动画效果 Android例子源码类似58...

    防qq弹出对框

    当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(int id),你应该在这里初始化这个对话框Dialog。这个回调方法被传以和showDialog(int id)相同的ID。当你创建这个对话框后,在Activity的最后...

    Android高级编程--源代码

    CruiseYoung提供的带有详细书签的电子书籍目录 ... 该资料是《Android高级编程》的源代码 ...本书的内容和示例提供了如何使用当前SDK来编写优秀的移动程序所需要的基础知识,同时也保持了快速适应未来版本...

    Android典型技术模块开发详解

    8.9 Dialog(对话框) 8.9.1 AlertDialog警告框 8.9.2 ProgressDialog进度框 8.9.3 DatePickerDialog & TimePickerDialog(日期时间选择框) 8.10 Menu(菜单) 8.10.1 options menu 8.10.2 context menu 8.10.3 sub...

    黑马程序员 安卓学院 万元哥项目经理 分享220个代码实例

    |--android 对话框样式 |--android 开机启动 |--android 挪动dialog的位置 |--android 控制对话框位置 |--android 根据uri获取路径 |--android 模拟器错误 |--android 横竖屏切换 |--android 获取mac地址 |--android...

    android 面试2

     答:在AndriodMinifest.xml文件中配置Activity的属性的主题为android:theme="@android:style/Theme.Dialog"  4. 如何退出Activity?如何安全退出已调用多个Activity的Application?  答:单个的Activity,调用...

    云应用开发 ——Google App Engine & Google Web Toolkit入门指南

    4.15 弹出对话框——DialogBox 4.16 修饰面板——DecoratorPanel 4.17 自然布局面板——FlowPanel 4.18 水平布面板——HorizontalPanel 4.19 垂直布局面板——VerticalPanel 4.20 绝对定位面板——AbsolutePanel ...

    Andriod应用开发–第三章作业1–习题答案

    Alert Dialog对话框能够直接通过new关键字创建对象. (×) Toast是Android系统提供的轻量级信息提醒机制, 用于向用户提示即时消息. (√) List View列表中的数据是通过Adapter加载的. (√√) 二、选择题 在XML...

Global site tag (gtag.js) - Google Analytics