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

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


分享到:
评论

相关推荐

    左右切换对话框 dialog

    总的来说,实现左右切换对话框的关键在于理解Android的UI组件和事件处理机制,以及如何通过布局和逻辑设计来优化用户体验。对于标签中提到的Yancy Dialog和高级Dialog,它们可能提供了额外的功能和自定义选项,...

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

    ### Android对话框(Dialog)详解与应用 #### 一、引言 在Android开发过程中,对话框(Dialog)是一种非常常见的UI组件,用于呈现简短的信息或请求用户输入信息。本篇文章旨在帮助初学者深入理解Android中的对话框机制...

    android dialog 大合集 对话框 透明

    在Android开发中,对话框(Dialog)是...通过本Android Dialog大合集,开发者可以全面了解和掌握Android对话框的使用,提升用户体验,使应用更加交互友好。同时,实践这些示例能加深对对话框机制的理解,提高开发效率。

    Android项目所有Dialog对话框.rar

    本资源“Android项目所有Dialog对话框.rar”包含了一系列Android项目中常用的Dialog对话框示例,这对于开发者深入理解和应用Dialog对话框功能至关重要。 首先,Dialog是Android系统提供的一个组件,它浮现在...

    Android 对话框(Dialog)大全 建立你自己的对话框.docx

    总之,Android对话框提供了一套灵活的机制,帮助开发者创建各种类型的对话框,以满足不同场景下的用户交互需求。通过熟练掌握`onCreateDialog()`、`onPrepareDialog()`等方法,以及`AlertDialog.Builder`和`...

    Android 普通对话框源码.rar

    总之,Android 普通对话框源码示例是一个宝贵的教育资源,它可以帮助开发者深入理解Android对话框的实现机制,提高在实际项目中应用对话框的能力。通过对源码的分析,我们可以学习到如何根据需求创建具有不同功能和...

    Android 控制关闭Dialog

    要实现这一功能,我们可以借助Java的反射机制来修改Dialog内部的私有变量。在Dialog的父类中有一个名为`mShowing`的布尔型变量,这个变量控制着Dialog是否显示。通过反射,我们可以访问并修改这个变量的值,从而达到...

    android 普通对话框

    在Android系统源码中,`AlertDialog`类继承自`Dialog`,实现了对话框的显示、触摸处理等核心功能。`AlertDialog.Builder`则负责构建对话框的各个部分,如标题、消息和按钮等。当调用`create()`方法时,实际创建了一...

    filter-dialog-activity,Android项目的筛选对话框活动.zip

    本开源项目"filter-dialog-activity"专注于实现这一功能,为开发者提供一个可自定义、可复用的对话框组件。项目文件名为"filter-dialog-activity-master",通常表示这是一个GitHub上的主分支源码。 1. **Android ...

    安卓Android源码——(Dialog对话框).rar

    本文将深入探讨安卓Android源码中的Dialog对话框,揭示其工作原理及如何自定义和使用。 首先,让我们了解Dialog的基本结构。在Android框架中,Dialog类是基于AlertDialog.Builder构建的,它提供了多种类型的对话框...

    Android 各种对话框整理

    总结,Android的对话框机制为开发者提供了丰富的选择,可以根据应用场景灵活选用Alert Dialog、Progress Dialog、DatePicker/TimePicker Dialog或者自定义Dialog,以实现更符合用户需求的交互体验。在实际项目中,要...

    Android 对话框大全

    ### Android对话框(Dialog)详解 #### 一、引言 在Android开发中,对话框是一种常见的用户交互组件,用于向用户提供临时的信息展示或收集用户的输入。本文将深入探讨Android中的对话框机制,并通过具体的代码示例...

    Android 仿微信阻塞对话框

    首先,我们需要理解Android对话框(Dialog)的基本概念。在Android中,Dialog是Activity的一个子窗口,用于提供额外的信息或与用户交互。它可以浮在当前Activity之上,且通常有一个半透明的背景,使用户无法与...

    Android入门开发实例--Dialog 对话框应用

    在Android开发中,对话框(Dialog)是一种非常重要的组件,用于与用户进行交互,提供临时信息或者需要用户做出选择的情况。本实例将带你深入了解如何在Android应用中使用Dialog,并通过实际操作来提升你的编程技能。...

    android使用MaterialDialog和AlertDialog弹框Timer倒计时的用法

    本教程将详细讲解如何在Android应用中使用`MaterialDialog`和`AlertDialog`实现倒计时功能,帮助开发者们提升用户体验。 首先,我们先了解`MaterialDialog`。`MaterialDialog`是Android的一款第三方库,它提供了...

    Android应用源码所有Dialog对话框.zip

    本资源“Android应用源码所有Dialog对话框.zip”包含了一系列的Dialog对话框示例源码,可以帮助开发者深入理解并掌握在Android应用中如何创建和使用各种类型的Dialog。 1. 基本对话框: Android中最基础的Dialog是...

    Android Dialog全屏显示、动画显示

    首先,我们需要了解Android Dialog的基础知识。Dialog是Android系统提供的一种轻量级窗口,通常用于向用户展示临时信息或进行简单的确认操作。默认的Dialog通常不会填充整个屏幕,而是悬浮于父Activity之上。然而,...

    Android常用对话框源码

    在Android开发中,对话框(Dialog)是一种常见的用户交互组件,用于向用户显示临时信息或者进行简单的交互操作。本文将深入探讨Android中的几种常用对话框及其源码实现,旨在帮助开发者更好地理解和应用这些组件。 ...

    Android Dialog对话框用法实例详解

    2. 使用Activity的Dialog机制 对于更复杂的Dialog,我们可以利用Activity的`onCreateDialog()`、`onPrepareDialog()`、`showDialog()`和`dismissDialog()`方法。这些方法可以帮助我们管理和控制Dialog的生命周期。 ...

    android自定义dialog嵌套listview自适应屏幕

    在Android开发中,自定义Dialog并使其嵌套ListView以实现屏幕自适应是一项常见的需求。这涉及到Android UI设计、自定义视图以及ListView的适配器机制。以下将详细阐述这个主题的相关知识点。 首先,让我们理解...

Global site tag (gtag.js) - Google Analytics