AlertDialog是一个 Dialog的子类,主要是用来弹出一个对话框。
一.AlertDialog 的构造方法及其属性。
这是一个很普通的构造AlertDialog的方法。 AlertDialog的构造主要是依靠器内部类 AlertDialog.Builder 来构造的 使用的设计模式是工厂模式
二.AlertDialog 的各个方法的解析。
这个是从官方文档截取下来的一句话。 英文的大致意思是 如果你的AlertDialog的 布局View 只是一个简单的String 类型的 那么可以使用 setMessaage()方法
如果不是的话, 那么可以使用上面这一段代码。 但是我试了比较多的方法 这两段代码基本用不了。。。。 先是直接复制这段代码放到程序中去 直接报错误
然后我又先把AlertDialog 使用show()方法出来 这次尽管没有报错但是没有起到任何作用
所以我一般使用的是
setView(View view, int viewSpacingLeft, int viewSpacingTop, int viewSpacingRight, int viewSpacingBottom)
setView(View view) 这个方法一般是用来自定义自己的View布局的
setMessage() 在自己的contentView 只是一个String类型的话的时候可以使用
setCustomTitle() 设置自定义的title布局
setTitle() 设置标题
setIcon() 设置图标
cancel() //删除dialog 和dismiss()方法差不多 不过这个会调用 取消 的点击事件
hide() /隐藏dialog 但是不会删除它
对于AlertDialog的方法只要这几个就差不多了
三.AlertDialog.Builder 这个内部类基本包含了Alert Dialog的方法 它和Alert Dialog 相同的方法就不介绍了
setCancelable(boolean) //这个方法只要是为了设置点击dialog 外面的部分会不会导致dialog失去焦点即消失
setAdapter(ListAdapter adapter, DialogInterface.OnClickListener listener) //这个主要是封装了一下 假如你的AlertDialog的contentView()是一个ListView 那么可以推荐使用这个方法
setItems(int itemsId, DialogInterface.OnClickListener listener) setItems(CharSequence[] items, DialogInterface.OnClickListener listener)
这个主要是setAdapter() 的低配版 它主要是 ListView的子View 只有一个String类型的TextView
setNegativeButton(CharSequence text, DialogInterface.OnClickListener listener) 取消按钮 有两参数 第一: 名字 第二:点击事件
setPositiveButton() 等等
AlertDialog.Builder setSingleChoiceItems (int itemsId, int checkedItem, DialogInterface.OnClickListener listener) 这个方法很重要 决定了对话框的类型 这个类型是单选框
setMultiChoiceItems(int itemsId, boolean[] checkedItems,DialogInterface.OnMultiChoiceClickListener listener) 多选框
四.自定义AlertDialog的Style 属性集合
<item name=”android:windowFrame”>@null</item> //Dialog的windowFrame框为无
<item name=”android:windowIsFloating”>true</item> //是否浮现 在Activity之上
<item name=”android:windowIsTranslucent”>true</item> //是否半透明
<item name=”android:windowNoTitle>true</item> //是否显示Title
<item name=”android:background”>@android:color/transparent</item> //设置dialog的背景
<item name=”android:windowBackground”>@android:color/transparent</item>
<item name=”android:backgroundDimAmount”>0.5</item> //就是用来控制灰度的值,当为1时,界面除了我们的dialog内容是高亮显示的,dialog以外的区域是黑色的,完全看不到其他内容,系统默认值是0.5
<item name=”android:textColor”>#ffffff</item> //标题文字的颜色
<item name=”android:textSize”>20sp</item> //标题文字的大小
<item name=”dividerHeight”>5dp</item>
设置Alert Dialog的位置 和大小
Window window = alertDialog.getWindow();
WindowManager.LayoutParams lp= window.getLayoutParams();
lp.gravity = Gravity.CENTER; 设置位置
lp.width =100;
lp.height =40; 设置大小
lp.x=20;
lp.y=90;
window.setAttribute(lp);