幽沉谢世事,俯默窥唐虞。这篇文章主要讲述android对话框(Dialog)的使用方法相关的知识,希望能为你提供帮助。
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)。这将删除不论什么内部对象引用并且假设这个对话框正在显示,它将被消除。
【android对话框(Dialog)的使用方法】注意: 假设你希望在onCreateDialog()方法之外创建对话框, 它将不会依附在Activity上. 你能够使用setOwnerActivity(Activity)来将它依附在Activity上.
当你希望显示一个对话框时, 调用showDialog(int)并将对话框的id传给它.
当一个对话框第一次被请求时,Android调用onCreateDialog(int). 这里是你初始化对话框的地方. 这个回调函数传入的id和showDialog(int)同样. 创建对话框之后,将返回被创建的对象.
推荐阅读
- 移动终端软件开发2017-2018秋学期教材《Android移动应用设计与开发(第2版)——基于Android Studio开发环境》
- Android Studio编译开源项目(含NDK开发)常见报错
- Spring中ClassPathXmlApplicationContext类的简单使用
- android学习-第二讲(修改项目名称和图标,log,过滤器)
- Android requires compiler compliance level 5.0 or 6.0. Found '1.4' instead的解决的方法
- 10款数字化刺绣设计的最佳刺绣软件 [免费和付费]
- 10款最佳开源和免费图书馆管理软件合集
- 最佳付费和免费2D动画制作软件合集(哪个最好())
- 处理海量数据的最佳大数据分析工具合集