Activities提供了一种方便管理的创建、保存、回复的对话框机制。比如 onCreateDialog(int), onPrepareDialog(int, Dialog), showDialog(int), dismissDialog(int)等方法,假设使用这些方法的话。Activity将通过getOwnerActivity()方法返回该Activity管理的对话框(dialog).
Android API支持下面类型的Dialog对象:
警告对话框 AlertDialog: 一个能够有0到3个button, 一个单选框或复选框的列表的对话框. 警告对话框能够创建大多数的交互界面, 是推荐的类型.
进度对话框 ProgressDialog: 显示一个进度环或者一个进度条. 因为它是AlertDialog的扩展, 所以它也支持button.
日期选择对话框 DatePickerDialog: 让用户选择一个日期.
时间选择对话框 TimePickerDialog: 让用户选择一个时间.
假设你希望自己定义你的对话框, 能够扩展Dialog类.
怎样显示一个Dialog
1、一个对话框总是被创建和显示为一个Activity的一部分. 你应该在Activity的onCreateDialog(int)中创建对话框. 当你使用这个回调函数时,Android系统自己主动管理每一个对话框的状态并将它们和Activity连接, 将Activity变为对话框的"全部者". 这样,每一个对话框从Activity继承一些属性.
2、 showDialog(int): 当你想要显示一个对话框时。调用showDialog(int id) 方法并传递一个唯一标识这个对话框的整数。当对话框第一次被请求时,Android从你的Activity中调用onCreateDialog(int id)。你应该在这里初始化这个对话框Dialog。这个回调方法被传以和showDialog(int id)同样的ID。当你创建这个对话框后,在Activity的最后返回这个对象。
3、 onPrepareDialog(int, Dialog):在对话框被显示之前,Android还调用了可选的回调函数onPrepareDialog(int id, Dialog). 假设你想在每一次对话框被打开时改变它的不论什么属性,你能够定义这种方法。
这种方法在每次打开对话框时被调用,而onCreateDialog(int) 仅在对话框第一次打开时被调用。假设你不定义onPrepareDialog(),那么这个对话框将保持和上次打开时一样。这种方法也被传递以对话框的ID。和在onCreateDialog()中创建的对话框对象。
4、 dismissDialog(int):当你准备关闭对话框时,你能够通过对这个对话框调用dismiss()来消除它。
假设须要,你还能够从这个Activity中调用dismissDialog(int id) 方法,这实际上将为你对这个对话框调用dismiss() 方法。
假设你想使用onCreateDialog(int id) 方法来管理你对话框的状态(就如同在前面的章节讨论的那样)。然后每次你的对话框消除的时候。这个对话框对象的状态将由该Activity保留。假设你决定不再须要这个对象或者清除该状态是重要的,那么你应该调用removeDialog(int
id)。这将删除不论什么内部对象引用并且假设这个对话框正在显示,它将被消除。
注意: 假设你希望在onCreateDialog()方法之外创建对话框, 它将不会依附在Activity上. 你能够使用setOwnerActivity(Activity)来将它依附在Activity上.
当你希望显示一个对话框时, 调用showDialog(int)并将对话框的id传给它.
当一个对话框第一次被请求时,Android调用onCreateDialog(int). 这里是你初始化对话框的地方. 这个回调函数传入的id和showDialog(int)同样. 创建对话框之后,将返回被创建的对象.