码迷,mamicode.com
首页 > 其他好文 > 详细

AlertDialog的解析

时间:2018-04-01 14:22:55      阅读:192      评论:0      收藏:0      [点我收藏+]

标签:style   enter   ams   item   bool   signature   builder   其他   string类   

 

 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);

 

AlertDialog的解析

标签:style   enter   ams   item   bool   signature   builder   其他   string类   

原文地址:https://www.cnblogs.com/xiongbo753/p/8686314.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!