zl程序教程

您现在的位置是:首页 >  移动开发

当前栏目

Android自定义Dialog(美化界面)

Android 自定义 界面 美化 Dialog
2023-09-14 08:57:56 时间
public class CustomDialog extends Dialog {       public CustomDialog(Context context) {           super(context);       }       public CustomDialog(Context context, int theme) {           super(context, theme);       }       public static class Builder {           private Context context;           private String title;           private String message;           private String positiveButtonText;           private String negativeButtonText;           private View contentView;           private DialogInterface.OnClickListener positiveButtonClickListener;           private DialogInterface.OnClickListener negativeButtonClickListener;           public Builder(Context context) {               this.context = context;           }           public Builder setMessage(String message) {               this.message = message;               return this;           }           /**           * Set the Dialog message from resource           * @param title           * @return           */           public Builder setMessage(int message) {               this.message = (String) context.getText(message);               return this;           }           /**           * Set the Dialog title from resource           * @param title           * @return           */           public Builder setTitle(int title) {               this.title = (String) context.getText(title);               return this;           }           /**           * Set the Dialog title from String           * @param title           * @return           */           public Builder setTitle(String title) {               this.title = title;               return this;           }           public Builder setContentView(View v) {               this.contentView = v;               return this;           }           /**           * Set the positive button resource and its listener           * @param positiveButtonText           * @return           */           public Builder setPositiveButton(int positiveButtonText,                   DialogInterface.OnClickListener listener) {               this.positiveButtonText = (String) context                       .getText(positiveButtonText);               this.positiveButtonClickListener = listener;               return this;           }           public Builder setPositiveButton(String positiveButtonText,                   DialogInterface.OnClickListener listener) {               this.positiveButtonText = positiveButtonText;               this.positiveButtonClickListener = listener;               return this;           }           public Builder setNegativeButton(int negativeButtonText,                   DialogInterface.OnClickListener listener) {               this.negativeButtonText = (String) context                       .getText(negativeButtonText);               this.negativeButtonClickListener = listener;               return this;           }           public Builder setNegativeButton(String negativeButtonText,                   DialogInterface.OnClickListener listener) {               this.negativeButtonText = negativeButtonText;               this.negativeButtonClickListener = listener;               return this;           }                      //创建dialog对象   主要就是这个方法,加载自定义布局文件           public CustomDialog create() {               LayoutInflater inflater = (LayoutInflater) context                       .getSystemService(Context.LAYOUT_INFLATER_SERVICE);               // instantiate the dialog with the custom Theme               final CustomDialog dialog = new CustomDialog(context,                       R.style.Dialog);               View layout = inflater.inflate(R.layout.dialog_normal_layout, null);               dialog.addContentView(layout, new LayoutParams(                       LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));               // set the dialog title               ((TextView) layout.findViewById(R.id.title)).setText(title);               // set the confirm button               if (positiveButtonText != null) {                   ((Button) layout.findViewById(R.id.positiveButton))                           .setText(positiveButtonText);                   if (positiveButtonClickListener != null) {                       ((Button) layout.findViewById(R.id.positiveButton))                               .setOnClickListener(new View.OnClickListener() {                                   public void onClick(View v) {                                       positiveButtonClickListener.onClick(dialog,                                               DialogInterface.BUTTON_POSITIVE);                                   }                               });                   }               } else {                   // if no confirm button just set the visibility to GONE                   layout.findViewById(R.id.positiveButton).setVisibility(                           View.GONE);               }               // set the cancel button               if (negativeButtonText != null) {                   ((Button) layout.findViewById(R.id.negativeButton))                           .setText(negativeButtonText);                   if (negativeButtonClickListener != null) {                       ((Button) layout.findViewById(R.id.negativeButton))                               .setOnClickListener(new View.OnClickListener() {                                   public void onClick(View v) {                                       negativeButtonClickListener.onClick(dialog,                                               DialogInterface.BUTTON_NEGATIVE);                                   }                               });                   }               } else {                   // if no confirm button just set the visibility to GONE                   layout.findViewById(R.id.negativeButton).setVisibility(                           View.GONE);               }               // set the content message               if (message != null) {                   ((TextView) layout.findViewById(R.id.message)).setText(message);               } else if (contentView != null) {                   ((LinearLayout) layout.findViewById(R.id.content))                           .removeAllViews();                   ((LinearLayout) layout.findViewById(R.id.content)).addView(                           contentView, new LayoutParams(LayoutParams.FILL_PARENT,                                   LayoutParams.FILL_PARENT));               }               dialog.setContentView(layout);               return dialog;           }       }  
CustomDialog.Builder builder = new CustomDialog.Builder(this);   builder.setMessage("这个就是自定义的提示框");   builder.setTitle("提示");   builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {       public void onClick(DialogInterface dialog, int which) {           dialog.dismiss();           //设置你的操作事项       }   });   builder.setNegativeButton("取消",           new android.content.DialogInterface.OnClickListener() {               public void onClick(DialogInterface dialog, int which) {                   dialog.dismiss();               }           });   builder.create().show();  
ansen_666 有三年android开发经验,开发过加密.短视频.直播app,一直在互联网公司工作,目前就职于上海翼成科技,担任android开发组长。