博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自定义dialog
阅读量:5872 次
发布时间:2019-06-19

本文共 6115 字,大约阅读时间需要 20 分钟。

hot3.png

public class CustomDialog extends Dialog {	    	public CustomDialog(Context context, int theme) {	        super(context, theme);	    }  	    public CustomDialog(Context context) {	        super(context);	    }	    public static class Builder {	  	        private Context context;	        private String title;	        private String message;	        private String positiveButtonText;	        private String negativeButtonText;	        private View contentView;	        private Drawable icon;	  	        private DialogInterface.OnClickListener                        positiveButtonClickListener,	                        negativeButtonClickListener;  	        public Builder(Context context) {	            this.context = context;	        }	          public Builder setMessage(String message) {	            this.message = message;	            return this;        }        private Builder setIcon(Drawable icon){        	this.icon=icon;        	return this;        } 	        public Builder setMessage(int message) {	            this.message = (String) context.getText(message);	            return this;        }	  	        public Builder setTitle(int title) {	            this.title = (String) context.getText(title);	            return this;	        }          	        public Builder setTitle(String title) {	            this.title = title;            return this;	        }	  	        public Builder setContentView(View v) {	            this.contentView = v;            return this;	        }  	        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;	        }	  	        	        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.krp_dialog, 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 {	                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 {	                layout.findViewById(R.id.negativeButton).setVisibility(	                        View.GONE);            }	            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.WRAP_CONTENT,	                                        LayoutParams.WRAP_CONTENT));	            }	            dialog.setContentView(layout);            return dialog;	        }	  	    }	  	}
        
 
   
   
       
           
           
       
       
       
       
       
       
       
       
   
 
 
 

转载于:https://my.oschina.net/u/1269662/blog/167862

你可能感兴趣的文章
JavaScript 从入门到放弃(二)模块化工具requirejs
查看>>
hadoop-2.6.5安装
查看>>
分库分表
查看>>
es-03-DSL的简单使用
查看>>
docker必须要sudo,但是sudo的话,又获得不了环境变量怎么办?
查看>>
在ionic这个框架下(Angular JS),对URL进行重写,过滤掉URL中的#号
查看>>
SGU 252 Railway Communication(KM)
查看>>
vmware虚拟机里的LINUX不能上网的原因一:虚拟网卡设置
查看>>
关于CCSpriteSheet报错问题
查看>>
用HTML5实现人脸识别
查看>>
批处理学习总结之常用符号
查看>>
监控摄像机的区别和分类
查看>>
Maven实战(四)——基于Maven的持续集成实践
查看>>
验证码生成类
查看>>
ENGINE_API CXNoTouch
查看>>
What is the difference between concurrency, parallelism and asynchronous methods?
查看>>
Job集群设计
查看>>
个人管理 - Learn More,Study Less!
查看>>
Linux 统计代码行数
查看>>
网络打印机 RPC服务器不可用
查看>>