对话框种类1.AlertDialog(Dialog)系统对话框。 2.Popupwindow弹出式对话框。对话框区别1.AlertDialog非阻塞式对话框:对话框的显示不影响后台任务的执行。 2.Pop
对话框种类
1.AlertDialog(Dialog)系统对话框。
2.Popupwindow弹出式对话框。
对话框区别
1.AlertDialog非阻塞式对话框:对话框的显示不影响后台任务的执行。
2.PopupWindow阻塞式对话框:对话框弹出后阻塞后台任务执行,直到对话框消失。
3.AlertDialog默认半透明背景,PopupWindow默认没有半透明背景。
4.PopupWindow默认不响应Back键,除非设置pw.setBackgroundDrawable(new ColorDrawable(0x00000000));
5.PopupWindow默认没有标题,AlertDialog默认是有标题的,当然可以设置dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);取消标题。
对话框示例
Dialog类的对话框
我们一般使用AlertDialog对话框,那么和Dialog有什么区别呢,其实AlertDialog只是继承了Dialog,实现了一些自己的方法而已。所以,AlertDialog和Dialog属于同一种对话框。那么我们就拿AlertDialog来说。
多按钮对话框
/**
* 多按钮对话框
*/
() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("确定对话框");
builder.setMessage("测试对话框");
builder.setPositiveButton("好评", new DialogInterface.OnClickListener() {
(DialogInterface dialog, int which) {
}
});
builder.setNegativeButton("差评", new DialogInterface.OnClickListener() {
(DialogInterface dialog, int which) {
}
});
builder.setNeutralButton("点赞", new DialogInterface.OnClickListener() {
(DialogInterface dialog, int which) {
}
});
builder.setIcon(R.drawable.ic_launcher);
builder.show();
}
单选对话框
/**
* 单选对话框
*/
() {
String items[] = {"item1", "item2", "item3", "item4", "item5"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
int position = 0;//默认单选的位置
builder.setTitle("单选对话框").setSingleChoiceItems(items, position, new DialogInterface.OnClickListener() {
(DialogInterface dialog, int which) {
//TODO 实现自己的需求
}
}).show();
}
多选对话框
/**
* 多选对话框
*/
() {
//默认多选的状态
boolean b[] = {false, false, true, false, false};
String items[] = {"item1", "item2", "item3", "item4", "item5"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("多选对话框").setMultiChoiceItems(items, b, new DialogInterface.OnMultiChoiceClickListener() {
(DialogInterface dialog, int which, boolean isChecked) {
//TODO 实现自己的需求
}
}).show();
}
列表对话框
/**
* 列表对话框
*/
() {
String items[] = {"item1", "item2", "item3", "item4", "item5", "item6", "item7", "item8"};
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setTitle("列表对话框").setItems(items, new DialogInterface.OnClickListener() {
(DialogInterface dialog, int which) {
//TODO 实现自己的需求
}
}).show();
}
添加自定义布局对话框
/**
* 添加自定义布局对话框
*/
() {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setIcon(R.drawable.ic_launcher).setTitle("添加布局对话框").
setPositiveButton("yes", new DialogInterface.OnClickListener() {
(DialogInterface dialog, int which) {
}
}).setNegativeButton("no", new DialogInterface.OnClickListener() {
(DialogInterface dialog, int which) {
}
}).setMessage("这个内容根据自己需求,可要可不要");
View view = LayoutInflater.from(this).inflate(R.layout.items, null);
AlertDialog dialog = builder.create();
dialog.setView(view);
dialog.show();
}
简单自定义对话框1
/**
* 简单自定义对话框1
*/
() {
Dialog dialog = new Dialog(this);
dialog.setTitle("自定义对话框1");
dialog.setContentView(R.layout.items);
//设置点击对话框内容之外对话框消失
dialog.setCanceledOnTouchOutside(true);
dialog.show();
}
简单自定义对话框2