对话框:
对话框的icon,title,message等都可以不设置。
单选框和多选框与对话框勾选步骤基本上一致。
对话框的构建步骤:
1.使用AlertDialog类的内部类Builder类new 一个builder对象
2.设置图标setIcon() ; builder.setIcon();
3.设置title setTitle(); builder.setTitle();
4.设置Message setMessage(); builder.setMessage();
5.设置确定按钮 setPositiveButton() ; builder.setPositiveButton()
6.设置取消按钮 setNegativeButton(); builder.setNegativeButton()
7.设置显示 show(); builder.show();
代码:
1 public void click(View v) {
2 AlertDialog.Builder builder = new AlertDialog.Builder(this);
3 builder.setIcon(android.R.drawable.alert_dark_frame);
4 builder.setTitle("鼻血俭朴");
5 builder.setMessage("尹志平,请考虑好!!!");
6 builder.setPositiveButton("确定", new OnClickListener() {
7
8 @Override
9 public void onClick(DialogInterface dialog, int which) {
10 Toast.makeText(MainActivity.this, "谢谢使用本软件,关闭", 0).show();
11 }
12 });
13
14 builder.setNegativeButton("取消", new OnClickListener() {
15
16 @Override
17 public void onClick(DialogInterface dialog, int which) {
18 Toast.makeText(MainActivity.this, "没有子宫,肯定不成功", 0).show();
19 }
20 });
21
22 builder.show();
23 }
单选框:
注意:构建过程中,不可以使用setMessage()方法,否则会不显示选项列表。
使用setSingleChoiceItems()方法设置单选
参数:
1.items:定义的单选选项数组
2.checkedItem:默认被选中的选项。默认不选中为-1,选中数组第一个为0,选中数组第二个为1,选择数组第三个为2
3.listener:侦听器
1 builder.setSingleChoiceItems(items, -1, new OnClickListener() {
2
3 @Override
4 public void onClick(DialogInterface dialog, int which) {
5 Toast.makeText(MainActivity.this, "选择的是:" + items[which], 0)
6 .show();
7 dialog.dismiss();
8 }
9 });
侦听器的onClick()方法的两个参数
1.dialog:点击时触发的对话框
2.which:被点击按钮的位置或者项目的位置
代码:
1 public void click1(View v) {
2 AlertDialog.Builder builder = new AlertDialog.Builder(MainActivity.this);
3 builder.setIcon(android.R.drawable.alert_dark_frame);
4 builder.setTitle("鼻血俭朴");
5 final String[] items = new String[] { "女", "男" };
6 builder.setSingleChoiceItems(items, -1, new OnClickListener() {
7
8 @Override
9 public void onClick(DialogInterface dialog, int which) {
10 Toast.makeText(MainActivity.this, "选择的是:" + items[which], 0)
11 .show();
12 dialog.dismiss();
13 }
14 });
15 builder.show();
16 }
多选框:
注意:构建过程中,不可以使用setMessage()方法,否则会不显示选项列表。
使用setMultiChoiceItems()方法设置多选
1 builder.setMultiChoiceItems(items, checkedItems,
2 new OnMultiChoiceClickListener() {
3
4 @Override
5 public void onClick(DialogInterface dialog, int which,
6 boolean isChecked) {
7 checkedItems[which] = isChecked;
8 }
9 });
侦听器的onClick()方法的两个参数
1.dialog:点击时触发的对话框
2.which:被点击按钮的位置或者项目的位置
3.isChecked:点击某个选项,如果该选项之前没被选择,那么此时isChecked的值为true,不勾选则为false。
代码:
1 public void click2(View v) {
2 AlertDialog.Builder builder = new AlertDialog.Builder(this);
3 builder.setIcon(android.R.drawable.alert_dark_frame);
4 builder.setTitle("请选择多个选项");
5 final String[] items = new String[] { "貂蝉", "西施", "主管", "设计", "开发" };
6 final boolean[] checkedItems = new boolean[] { false, false, false,
7 false, false };
8 builder.setMultiChoiceItems(items, checkedItems,
9 new OnMultiChoiceClickListener() {
10
11 @Override
12 public void onClick(DialogInterface dialog, int which,
13 boolean isChecked) {
14 checkedItems[which] = isChecked;
15 }
16 });
17 builder.setPositiveButton("确定", new OnClickListener() {
18
19 @Override
20 public void onClick(DialogInterface dialog, int which) {
21
22 String text = "";
23 for (int i = 0; i < items.length; i++) {
24 if (checkedItems[i]) {
25 text += items[i];
26 }
27 }
28 Toast.makeText(MainActivity.this, text, 0).show();
29 dialog.dismiss();
30
31 }
32 });
33 builder.show();
34 }
AlartDialog按Back键的处理:
可以通过代码设置:默认是true,就是说可以通过按back键取消了。
builder.setCancelable(false); //默认为true
同时可以设置back键的监听,自定义动作
1 builder.setOnCancelListener(new OnCancelListener() {
2
3 @Override
4 public void onCancel(DialogInterface dialog) {
5 //定义的操作
6 }
7 });
来源:https://www.cnblogs.com/liyiran/p/5050687.html