列举一些 Android 常见的 Dailog 样式。

普通对话框

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
    public void commondialog(View v){

//创建构建器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

//设置数据给构建器
builder.setCancelable(false); //屏蔽后退键(点击后退健,对话框不消失)
builder.setIcon(android.R.drawable.ic_dialog_email); //设置图标
builder.setTitle("这是标题"); //设置标题
builder.setMessage("这是弹窗内容"); //设置内容

//设置确定按钮
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//编写确定之后要执行的逻辑

}

});

//设置取消按钮
builder.setNegativeButton("取消", null); //如果取消需要跳转,也可以和确定一样写一个方法

//设置隐藏按钮
builder.setNeutralButton("隐藏", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
//执行隐藏逻辑

}
});
AlertDialog dialog = builder.create(); //创建对话框
dialog.show(); //显示


}




}

列表对话框

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29

public void listdialog(View v){
final String[] items = new String[]{"张三","李四","王五"}; //String列表数组

//创建构建器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

//设置数据给构建器

builder.setIcon(android.R.drawable.ic_dialog_email); //设置图标
builder.setTitle("这是标题"); //设置标题

//设置条目数据
builder.setItems(items, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {

//点击选择哪个条目
String item = items[which];
Toast.makeText(getApplicationContext(),item,0).show(); //toast提示选择了哪个选项
}
});


AlertDialog dialog = builder.create(); //创建对话框
dialog.show(); //显示


}

单选对话框

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
        public void singleChoiceDialog(View v){
final String[] items = new String[]{"张三","李四","王五"}; //String列表数组

//创建构建器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

//设置数据给构建器

builder.setIcon(android.R.drawable.ic_dialog_email); //设置图标
builder.setTitle("这是标题"); //设置标题

builder.setSingleChoiceItems(items, -1, new DialogInterface.OnClickListener() { //-1的意思默认为不选中
@Override
public void onClick(DialogInterface dialog, int which) {
//点击选择哪个条目
String item = items[which];
Toast.makeText(getApplicationContext(),item,0).show(); //toast显示选择哪个选项
dialog.dismiss(); //选中之后对话框消失

}
});


AlertDialog dialog = builder.create(); //创建对话框
dialog.show(); //显示


}




}

多选对话框

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
    public void multiChoiceDialog(View v){
final String[] items = new String[]{"张三","李四","王五"}; //String列表数组
final boolean[] checkItems = new boolean[]{true,true,false}; //创建的是否选中的boolean数组

//创建构建器
AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);

//设置数据给构建器

builder.setIcon(android.R.drawable.ic_dialog_email); //设置图标
builder.setTitle("这是标题"); //设置标题
builder.setMultiChoiceItems(items, checkItems, new DialogInterface.OnMultiChoiceClickListener() { //cheeckItems需要创建一个是否选中的boolean数组
@Override
public void onClick(DialogInterface dialog, int which, boolean isChecked) {
checkItems[which] = isChecked; //获取数组里面的值
}
});
builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) { //知道用户选择了哪些条目
boolean c = checkItems[1];
System.out.println(c);
StringBuffer sb = new StringBuffer("您选择的项目是:");
for (int i = 0; i < checkItems.length ; i++){
if (checkItems[i]) {
sb.append(items[i]).append(","); //逗号是显示toast中的分隔逗号

}

}
Toast.makeText(getApplicationContext(),sb.toString(),1).show();


}
});



AlertDialog dialog = builder.create(); //创建对话框
dialog.show(); //显示


}




}

等候对话框

1
2
3
4
5
6
    public void spinnerDialog(View v) {
//不确定等候对话框
new ProgressDialog(this).show();

}
}

进度条对话框

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
    public void hprogressDialog(View v) {
//水平进度条
final ProgressDialog pd = new ProgressDialog(this);
pd.setProgress(ProgressDialog.STYLE_HORIZONTAL); //设置样式是一个水平进度条
pd.setMax(300);
pd.setIcon(android.R.drawable.ic_dialog_email);
pd.setMessage("正在下载");
pd.show();

new Thread(){
public void run(){
int i = 1;
while(i < 250){
//给进度条设置进度
pd.setProgress(i++);
SystemClock.sleep(300);
}
//关闭对话框
pd.dismiss();
}
}.start();


}
}