Dialog的使用
1、Dialog对话框,一般是一个不全屏的小窗口,用来提供原界面没有空间来呈现的输入。或者用来提示进一步的确认例如删除动作或者错误显示。
2、AlertDialog可以快速的实现典型的对话框,且界面风格与平台一致
3、与任何其他模态对话框一样,AlertDialog将弹出并获取焦点,一直显示,直到被用户的操作导致无需再显示
4、构造AlertDialog的最简单方式是使用Builder类。
5、Builder提供了一系列方法来配置AlertDialog,每个方法返回Builder以便连续调用。
--setMessage():将对话框的“主体”设置为一个简单的文本消息
--setTitle():配置要在对话框标题栏
--setXXXButton():配置对话框下方的按钮
6、最后,在构造器上调用show()来显示对话框
7、AlertDialog默认存在三个按钮,调用对应的方法,就可以在Dialog上添加对应的按钮
--setPositiveButton()左侧,一般用于OK
--setNeutralButton()中间,代表其他功能例如设置
--setNegativeButton()右侧,一般用于cancel
8、setPositiveButton()
--第一个参数代表Button上显示的文本
--第二个listener代表Button点击后的回调逻辑
--无论如何,按钮点击后,Dialog都会消失
btn.setOnClickListener(new
View.OnClickListener() {
@Override
public void
onClick(View v) {
new
AlertDialog.Builder(MainActivity.this)
.setMessage("这是一个对话框")
.setTitle("测试")
.setPositiveButton("确定",
null)
.setNegativeButton("取消",
null)
.setNeutralButton("测试",
null)
.show();
}
});
9、在builder调用show方法前,扔就可以对Dialog做其他的设置
--setItems(),可以是Dialog的主体是一个List
----回调接口DialogInterface.OnClickListener
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void
onClick(View v) {
String[]
contextString={"AAA","BBB","CCC"};
new
AlertDialog.Builder(MainActivity.this)
.setItems(contextString,
null)
.setTitle("TEST")
.show();
}
});
--setMultiChoiceItems();可以使Dialog的主体是CheckBox
----回调接口OnMultiChoiceClickListener
btn.setOnClickListener(new
View.OnClickListener() {
@Override
public void
onClick(View v) {
String[]
contextString={"AAA","BBB","CCC"};
new
AlertDialog.Builder(MainActivity.this)
.setMultiChoiceItems(contextString,
null, null)
.show();
}
});
--setSingleChoiceItems();可以使Dialog的主体是RadioButton
----回调接口DialogInterface.OnClickListener
btn.setOnClickListener(new
View.OnClickListener() {
@Override
public void
onClick(View v) {
String[]
items={"a","b","c"};
new
AlertDialog.Builder(MainActivity.this)
.setSingleChoiceItems(items,
-1,
null) //-1表示一个都不选中,0表示选中第一个
.show();
}
});
--setView();完全自定义一个Dialog的内容
btn.setOnClickListener(new
View.OnClickListener() {
public void
onClick(View v) {
View
view=LayoutInflater.from(MainActivity.this).inflate(R.layout.dialog,
null);
new
AlertDialog.Builder(MainActivity.this)
.setView(view)
.setPositiveButton("确定",
null)
.show();
}
});