今天刚刚学习了下 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外面的位置能消失popupWindow.setOutsideTouchable(false);
popupWindow.showAsDropDown(v,40,40);根据哪个控件显示 在其XY轴的偏移量
public void setBackgroundDrawable(Drawable background)
设置它的背景
popupWindow.setTouchable(true);设置它是否响应touch事件
说到这里 PopupWindow一些常用的方法就差不多 ,想要更详细的可以自己去看API
有什么不足的地方,欢迎各位大神补充