本节引言
本节介绍显示提示信息的第三个控件AlertDialog(对话框),同时它也是其他Dialog的父类,如ProgressDialog、TimePickerDialog等,而AlertDialog的父类是Dialog。
另外,和前面学习的Toast及Notification不同,AlertDialog并不能直接调用出来,如果用户打开AlertDialog的源代码,会发现构造方法是protected的。如果创建一个AlertDialog,需要使用到该类中的一个静态内部类public static class Builder,然后再调用AlertDialog 里的相关方法,来对AlertDialog进行定制,最后调用show()方法来显示AlertDialog对话框。下面介绍AlertDialog的基本用法,以及定制AlertDialog。
1.基本使用流程
步骤1:创建AlertDialog.Builder对象。
步骤2:调用setIcon()设置图标,setTitle()或setCustomTitle()设置标题。
步骤3:设置对话框的内容:setMessage()还有其他方法来指定显示的内容。
步骤4:调用setPositive/Negative/NeutralButton()设置:确定,取消,中立按钮。
步骤5:调用create()方法创建这个对象,再调用show()方法将对话框显示出来。
2.普通对话框使用示例
(1)新建一个module,命名为AlertDialogDemo。
(2)普通对话框布局文件activity_main.xml。
(3)MainActivity.java。
(4)运行效果,见图3.1。
图3.1
3.列表对话框使用示例
(1)复制普通对话框案例的布局文件activity_main.xml为activity_main2.xml,并修改代码。
(2)复制普通对话框案例的MainActivity.java为MainActivity2.java。
(3)修改AndroidManifest.xml文件。
(4)运行效果,见图3.2。
图3.2(www.xing528.com)
4.单选列表对话框使用示例
(1)修改activity_main2.xml代码。
(2)修改MainActivity2.java代码。
(3)运行效果,见图3.3。
图3.3
5.多选列表对话框使用示例
(1)修改activity_main2.xml代码。
(2)修改MainActivity2.java代码。
(3)运行效果,见图3.4。
图3.4
细心的用户可能发现,当点击对话框的外部区域,对话框就会消失,因此可以为builder设置setCancelable(false)即能解决这个问题。
6.通过Builder的setView()定制显示的AlertDialog
用户可以自定义一个与系统对话框不同的布局,然后调用setView()将布局加载到AlertDialog上。
(1)新建一个module,命名为CustomAlertDemo。
(2)布局文件activity_main.xml代码。
(3)布局文件dialog_layout.xml代码。
(4)MainActivity.java。
(5)运行效果,见图3.5。
图3.5
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。