AlertDialog跟PopupWindow对话框

今天刚刚学习了下 AlertDialog 跟 PopupWindow对话框 就跟大家分享一下,说的不对的勿喷,谢谢!!!

首先来说 AlertDialog 

我把它大致分为几个部分 

1.提示对话框   2.列表对话框  3.多选对话框  4.多选单项对话框  5.自定义对话框  

首先来说 提示对话框 

 AlertDialog.Builder builder =new AlertDialog.Builder(this);

这句话表示Dialog的对话框的构造者  Builder是其内部类

然后直接使用这个构造者就可以了 

builder.settitle() 这里面设置的是标题

builder.seticon()这里设置的是图标

builder.setMessage() 这里设置的是内容

builder.setPositiveButton()这里面有两个参数: 第一个参数是  正面的按钮(比如你写的 OK 确定  是String类型的)  第二个参数是  一个点击事件 

builder.setPositiveButton()这是个中间选项,也是两个参数

builder.setNegativeButton()这里也是两个参数  第一个参数刚好与第一个相反  后面的一样

builder.show()

写到这里 提示对话框基本就完成了,最后友情提示一下 ,千万不要忘记show()  很多开发者都会忘记(比如我【尴尬】)

 列表对话框 

我感觉这个比上面的更简单 ,用的也比较少 

一般都是用数组表示列表框里选项的内容 

String []  str={};

调用 builder.setitems()这个方法就可以   这个方法里面有两个参数   第一个参数   就是你构造的数组  第二个参数是   也是一个点击事件

多选对话框 

比列表对话框稍微复杂一点   

 也要构造一个数据源(其实可以理解成上面的那个数组) ,这里需要你创建一个集合,来记录你总共添加的个数

String [] str={}  ArrayList<String> list=new ArrayList<>();

这里要调用的方法是 builder.setMultiChoiceItems() 这里有三个参数  第一个是  数组 ,第二个参数是  选择的数组把(我也不知道怎么解释)可以设置成null 第三个参数是 一个点击事件 

多选单项对话框

这里也是需要一个数组 String [] str={}

这里调用的方法是 builder.setSingleChoiceItems()这里有三个参数  第一个是 数组  第二个是  你默认显示哪个  第三个是  一个点击事件 


自定义对话框

 这个也是平常开发用的最多的一个对话框,可以自己随意定义需要显示的对话框 

既然可以随意显示,那就需要自己自定义布局  

这里主要的方法是  getLayoutInflager().infalte()这里面有两个参数  第一个就是自己的布局  第二个我一般写null

builder.setView() 把你自己的布局加进去就可以了

记住  使用AlertDialog 就离不开这个构造者   AlertDialog.Builder builder =new AlertDialog.Builder(this);



PopupWindow 

 这个可以随意改变它显示的位置,个人感觉比AlertDialog灵活一点 

 PopupWindow  popupWindow=new  PonupWindow() 这里用三个参数的构造方法  第一个是 你自己创造的布局  后面两个是宽高 

getLayoutInflater().inflate(R.layout.popupwindow_layout,null);
布局你可以这样获取到 

这里来说说PopupWindow的一些方法

popupWindow.setFocusable(true);
让它获得焦点 

popupWindow.setOutsideTouchable(false);
点击除了PopupWindow外面的位置能消失

popupWindow.showAsDropDown(v,40,40);
根据哪个控件显示  在其XY轴的偏移量

public void setBackgroundDrawable(Drawable background) 

设置它的背景

popupWindow.setTouchable(true);
设置它是否响应touch事件

说到这里 PopupWindow一些常用的方法就差不多 ,想要更详细的可以自己去看API

有什么不足的地方,欢迎各位大神补充





















 






  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值