安卓自定义dialog提示框

安卓自定义dialog弹窗,下面是自定义一个类名为AlertDialog的提示框,可用于提示用户是否进行某些操作,代码如下:
  1. /** 
  2.  * 自定义提示弹窗 
  3.  */  
  4. public class AlertDialog extends Dialog {    
  5.     private Context context;//上下文  
  6.     private OnCancelClickListener onCancelClickListener;//监听点击事件  
  7.     private OnConfirmClickListener onConfirmClickListener;//监听点击事件  
  8.     private String title;//提示  
  9.     private String message;//提示内容  
  10.     private String leftText;//取消按钮文本  
  11.     private String rightText;//确定按钮文本    
  12.     //声明控件  
  13.     private TextView tvTitle;//文本   标题  
  14.     private TextView tvMessage;//文本 提示内容  
  15.     private TextView tvCancel;//文本-按钮   取消  
  16.     private TextView tvConfirm;//文本-按钮  确定    
  17.     public AlertDialog(@NonNull Context context) {  
  18.         super(context);  
  19.         this.context = context;  
  20.     }    
  21.     public interface OnCancelClickListener {  
  22.         //监听取消按钮按钮事件  
  23.         void onCancelClickListener(AlertDialog dialog);  
  24.     }    
  25.     public interface OnConfirmClickListener {  
  26.         //监听确定按钮事件  
  27.         void onConfirmClickListener(AlertDialog dialog);  
  28.     }    
  29.     /** 
  30.      * 设置标题 
  31.      * 
  32.      * @param title 
  33.      * @return 
  34.      */  
  35.     public AlertDialog setTitle(String title) {  
  36.         this.title = title;  
  37.         return this;  
  38.     }    
  39.     /** 
  40.      * 设置提示内容      * 
  41.      * @param message  提示内容
  42.      * @return 
  43.      */  
  44.     public AlertDialog setMessage(String message) {  
  45.         this.message = message;  
  46.         return this;  
  47.     }    
  48.     /** 
  49.      * 设置左边按钮文本显示和监听点击事件 
  50.      * 
  51.      * @param text                  文本显示内容 
  52.      * @param onCancelClickListener 监听点击事件 
  53.      */  
  54.     public AlertDialog setOnCancelClickListener(String text, OnCancelClickListener onCancelClickListener) {  
  55.         this.leftText = text;  
  56.         this.onCancelClickListener = onCancelClickListener;  
  57.         return this;  
  58.     }    
  59.     /** 
  60.      * 设置右边边按钮文本显示和监听点击事件      * 
  61.      * @param text                   文本显示内容 
  62.      * @param onConfirmClickListener 监听点击事件 
  63.      */  
  64.     public AlertDialog setOnConfirmClickListener(String text, OnConfirmClickListener onConfirmClickListener) {  
  65.         this.rightText = text;  
  66.         this.onConfirmClickListener = onConfirmClickListener;  
  67.         return this;  
  68.     }    
  69.     @Override  
  70.     protected void onCreate(Bundle savedInstanceState) {  
  71.         super.onCreate(savedInstanceState);    
  72.         //设置布局   布局自定义即可
  73.         setContentView(R.layout.dialog_alert);    
  74.         AlertDialog dialog = this;//获取当前的dialog    
  75.         //获取控件  
  76.         tvTitle = findViewById(R.id.tv_dialog_alert_title);  
  77.         tvMessage = findViewById(R.id.tv_dialog_alert_message);  
  78.         tvCancel = findViewById(R.id.tv_dialog_alert_cancel);  
  79.         tvConfirm = findViewById(R.id.tv_dialog_alert_confirm);    
  80.         if (title != null && !"".equals(title) && message != null && !"".equals(message)) {  
  81.             tvTitle.setText(title);//设置标题内容  
  82.             tvMessage.setText(message);//提示提示提示内容  
  83.         } else if (title != null && !"".equals(title) && message == null) {  
  84.             tvTitle.setText(title);//设置标题内容  
  85.             //隐藏提示内容  
  86.             tvMessage.setVisibility(View.GONE);  
  87.         }    
  88.         if (leftText != null && !"".equals(leftText) && rightText != null && !"".equals(rightText)) {  
  89.             tvCancel.setText(leftText);//设置左边按钮显示内容  
  90.             tvConfirm.setText(rightText);//设置右边按钮显示内容  
  91.         }    
  92.         //文本-按钮 取消  点击事件  
  93.         tvCancel.setOnClickListener(new View.OnClickListener() {  
  94.             @Override  
  95.             public void onClick(View v) {  
  96.                 onCancelClickListener.onCancelClickListener(dialog);  
  97.             }  
  98.         });    
  99.         //文本-按钮 确定  点击事件  
  100.         tvConfirm.setOnClickListener(new View.OnClickListener() {  
  101.             @Override  
  102.             public void onClick(View v) {  
  103.                 dismiss();//关闭dialog  
  104.                 onConfirmClickListener.onConfirmClickListener(dialog);  
  105.             }  
  106.         });  
  107.     }    
  108.     /** 
  109.      * 创建一个实例      * 
  110.      * @return 返回一个实例 
  111.      */  
  112.     public AlertDialog createNew() {  
  113.         final AlertDialog dialog;  
  114.         if (message == null) {  
  115.             dialog = new AlertDialog(context, title);  
  116.         } else {  
  117.             dialog = new AlertDialog(context, title);  
  118.         }  
  119.         return this;  
  120.     }  
  121. }  
调用方法如下:
  1. //弹窗  
  2. new AlertDialog(mActivityContext)  
  3.         .setTitle("确认删除么?")  
  4.         .setOnCancelClickListener("取消"new AlertDialog.OnCancelClickListener() {  
  5.             @Override  
  6.             public void onCancelClickListener(AlertDialog dialog) {  
  7.                 dialog.dismiss();//关闭dialog  
  8.             }  
  9.         })  
  10.         .setOnConfirmClickListener("确定"new AlertDialog.OnConfirmClickListener() {  
  11.              @Override  
  12.              public void onConfirmClickListener(AlertDialog dialog) {  
  13.                 //确定之后需要做的事情
  14.                             }  
  15.                         });  
  16.                     }  
  17.                 });  
  18.             }  
  19.         }).createNew().show();  

你可能感兴趣的:(安卓自定义dialog提示框)