android学习总结(16.09.08)AlertDialog的简单用法

AlertDialog简介

AlertDialog又叫警告对话框,是各种对话框中功能最丰富使用最广泛的一种,虽然翻译过来叫警告对话框,但作用却不仅仅只是警告。
AlertDialog需要通过Builder类的实例调用create方法创建实例
Builder是AlertDialog的一个静态内部类,主要用于设置AlertDialog,部分方法与AlertDialog的方法功能一样

AlertDialog的基本方法

void show()方法  //调用此方法后显示当前引用所对应的对话框,同时DialogInterface.OnCancelListener被执行

void dismiss()方法 //关闭对话框,同时DialogInterface.OnCancelListener被执行

void setOnCancelListener(final OnCancelListener listener)  //设置对cancel事件的监听器

void setOnDismissListener  //设置对dismiss事件的监听器

设置AlertDialog的基本方法

setTitle(CharSequence title)  //设置AlertDialog的标题

setIcon(int iconId)    //设置AlertDialog的图标(在title的左边)

setMessage(CharSequence message)  //设置AlertDialog的提醒信息

AlertDialog内置了三个按钮,分别是肯定(positive),否定(negative)和中立(neutral)

使用 setXxxButton方法(只能通过Builder实例调用)设置即可,需要传入字符串(按钮的文字)和一个按钮的监听器


为AlertDialog添加列表

AlertDialog内部实现的ListView的功能,在外部只需通过Builder实例调用这个方法即可
public Builder setItems(CharSequence[] items, final OnClickListener listener)
itmes为列表中每行的内容,listener为监听器
一般会实现DialogInterface.OnClickListener作为监听器
并重写public void onClick(DialogInterface dialog, int which)方法
which为列表中被点击的行的索引  从零开始

为AlertDialog添加单选组

AlertDialog内部同样也实现了RadioGroup的功能,在外部通过Builder实例调用这个方法即可
public Builder setSingleChoiceItems(CharSequence[] items, int checkedItem,final OnClickListener listener)
items是每个单选项的名字,checkedItem是指默认被选中的选项,0代表第一个选项,以此类推

注:此方法需要使用Builder实例调用


为AlertDialog添加多选项

AlertDialog内部也通过CheckBox实现了多选选项的功能,外部通过Builder实例调用下面的方法即可使用此功能
public Builder setMultiChoiceItems(CharSequence[] items, boolean[] checkedItems, final OnMultiChoiceClickListener listener)
items是每个选项的名字,checkedItems是一个布尔数组用于指定每个选项的默认值,值为选中/非选中(true/false), 

注:此方法需要使用Builder实例调用


自定义AlertDialog

当AlertDialog自带的样式无法满足我们的需要时,就可能要使用自定义的AlertDialog了
原理:自定义一个布局然后把它动态加载到AlertDialog中

主要步骤
①在res/layout下写好自定义的XML文件
②使用LayoutInflater类的方法inflate找到布局并加载,返回一个View对象
例View view= LayoutInflater.from(MainActivity.this).inflate(R.layout.login,null)
③使用setView方法将找到的View设置为Dialog的样式,同时也可可以通过之前找到的view对象来找到布局文件中的控件为其设置响应事件

 inflate方法和findViewById的区别
LayoutInflater用来寻找res/layout/下的xml布局文件,并且实例化
findViewById是找xml布局文件下的具体widget控件(如Button、TextView等)
①对于一个没有被载入或者想要动态载入的界面,都需要使用LayoutInflater.inflate()来载入;
②对于一个已经载入的界面,就可以使用Activiyt.findViewById()方法来获得其中的控件。

你可能感兴趣的:(android)