Dialog提示框

这里有一个工厂,名为showDialog(),接下来是这个工厂创建产品Dialog的生产线流程:

一号生产车间生产一个骨架:

  mBuilder: AlertDialog.Builde

发送给二号车间为其装饰:

  setTitle(text):为dialog设置标题。text为标题。

  setMassage(massage): 设置dialog显示的信息。Massage为要显示的信息。

  setPositiveButton(CharSequence text, OnClickListener listener): 设置确定按钮。Text为按钮名称,listener为触发按钮引发的事件。

  setNegativeButton(CharSequence text, OnClickListener listener): 设置取消按钮。Text为按钮名称,listener为触发按钮引发的事件。

发送到三号车间完成创建:

  mBuilder.create().show();

消费者购买使用:

 

当按返回键(即会触发onBackPress)时会调用showDialog弹出提示框。

具体代码如下:

 1   // dialog提示
 2     private void showDialog() {
 3         // 创建AlertDialog.Builder, this表示MainActivity传进来
 4         AlertDialog.Builder mBuilder = new AlertDialog.Builder(this);
 5         // 设置提示框标题
 6         mBuilder.setTitle("温馨提示:"); 
 7         // 设置提示信息
 8         mBuilder.setMessage("确定退出吗?");
 9         // 确定按钮
10         mBuilder.setPositiveButton("确定", new OnClickListener() {
11             
12             @Override
13             public void onClick(DialogInterface dialog, int which) {
14                 // 把dialog给关掉
15                 dialog.dismiss(); 
16                 // 把窗口关掉, 这里的this是代表主窗口MainActivity, 而this.finish()中的this代表showDialog,因为它在showDialog里面
17                 MainActivity.this.finish(); 
18             }
19         });
20         // 取消按钮
21         mBuilder.setNegativeButton("取消", new OnClickListener() {
22             
23             @Override
24             public void onClick(DialogInterface dialog, int arg1) {
25                 // 关闭提示
26                 dialog.dismiss(); 
27             }
28         });
29         mBuilder.create().show();
30     }
31     
32     // 当按返回键时就弹出dialog对话框
33     @Override
34     public void onBackPressed() {
35         showDialog();    
36     }
原文地址:https://www.cnblogs.com/snow1234/p/6062730.html