码迷,mamicode.com
首页 > 其他好文 > 详细

Easy Tag Write(3.1)

时间:2016-11-06 17:10:02      阅读:169      评论:0      收藏:0      [点我收藏+]

标签:dial   listen   drawable   ems   dialog   ant   sys   near   ams   

  1 package skyseraph.android.util;
  2 
  3 import skyseraph.easytagwrite.R;
  4 import android.app.Dialog;
  5 import android.content.Context;
  6 import android.content.DialogInterface;
  7 import android.graphics.drawable.Drawable;
  8 import android.view.LayoutInflater;
  9 import android.view.View;
 10 import android.view.ViewGroup.LayoutParams;
 11 import android.widget.Button;
 12 import android.widget.ImageView;
 13 import android.widget.LinearLayout;
 14 import android.widget.TextView;
 15 
 16 public class CustomDialog extends Dialog {
 17     public CustomDialog(Context context, int theme) {
 18         super(context, theme);
 19     }
 20 
 21     public CustomDialog(Context context) {
 22         super(context);
 23     }
 24 
 25     /**
 26      * Helper class for creating a custom dialog
 27      */
 28     public static class Builder {
 29 
 30         private Context context;
 31 
 32         private String title;
 33 
 34         private String message;
 35 
 36         private String positiveButtonText;
 37 
 38         private String negativeButtonText;
 39 
 40         private View contentView;
 41 
 42         private Drawable drawable;
 43 
 44         private DialogInterface.OnClickListener positiveButtonClickListener,
 45                 negativeButtonClickListener;
 46 
 47         public Builder(Context context) {
 48             this.context = context;
 49         }
 50 
 51         /**
 52          * Set the Dialog message from String
 53          * 
 54          * @param title
 55          * @return
 56          */
 57         public Builder setMessage(String message) {
 58             this.message = message;
 59             return this;
 60         }
 61 
 62         /**
 63          * Set the Dialog message from resource
 64          * 
 65          * @param title
 66          * @return
 67          */
 68         public Builder setMessage(int message) {
 69             this.message = (String)context.getText(message);
 70             return this;
 71         }
 72 
 73         /**
 74          * Set the Dialog title from resource
 75          * 
 76          * @param title
 77          * @return
 78          */
 79         public Builder setTitle(int title) {
 80             this.title = (String)context.getText(title);
 81             return this;
 82         }
 83 
 84         /**
 85          * Set the Dialog title from String
 86          * 
 87          * @param title
 88          * @return
 89          */
 90         public Builder setTitle(String title) {
 91             this.title = title;
 92             return this;
 93         }
 94 
 95         /***
 96          * Set the Dialog Icon from resource
 97          * 
 98          * @param imageres
 99          * @return
100          */
101         public Builder setIcon(int imageres) {
102 
103             this.drawable = context.getResources().getDrawable(imageres);
104 
105             return this;
106         }
107 
108         /***
109          * Set the Dialog Icon from Drawable
110          * 
111          * @param drawable
112          * @return
113          */
114         public Builder setIcon(Drawable drawable) {
115             this.drawable = drawable;
116             return this;
117         }
118 
119         /**
120          * Set a custom content view for the Dialog. If a message is set, the
121          * contentView is not added to the Dialog...
122          * 
123          * @param v
124          * @return
125          */
126         public Builder setContentView(View v) {
127             this.contentView = v;
128             return this;
129         }
130 
131         /**
132          * Set the positive button resource and it‘s listener
133          * 
134          * @param positiveButtonText
135          * @param listener
136          * @return
137          */
138         public Builder setPositiveButton(int positiveButtonText,
139                 DialogInterface.OnClickListener listener) {
140             this.positiveButtonText = (String)context.getText(positiveButtonText);
141             this.positiveButtonClickListener = listener;
142             return this;
143         }
144 
145         /**
146          * Set the positive button text and it‘s listener
147          * 
148          * @param positiveButtonText
149          * @param listener
150          * @return
151          */
152         public Builder setPositiveButton(String positiveButtonText,
153                 DialogInterface.OnClickListener listener) {
154             this.positiveButtonText = positiveButtonText;
155             this.positiveButtonClickListener = listener;
156             return this;
157         }
158 
159         /**
160          * Set the negative button resource and it‘s listener
161          * 
162          * @param negativeButtonText
163          * @param listener
164          * @return
165          */
166         public Builder setNegativeButton(int negativeButtonText,
167                 DialogInterface.OnClickListener listener) {
168             this.negativeButtonText = (String)context.getText(negativeButtonText);
169             this.negativeButtonClickListener = listener;
170             return this;
171         }
172 
173         /**
174          * Set the negative button text and it‘s listener
175          * 
176          * @param negativeButtonText
177          * @param listener
178          * @return
179          */
180         public Builder setNegativeButton(String negativeButtonText,
181                 DialogInterface.OnClickListener listener) {
182             this.negativeButtonText = negativeButtonText;
183             this.negativeButtonClickListener = listener;
184             return this;
185         }
186 
187         /**
188          * Create the custom dialog
189          */
190         public CustomDialog create() {
191             LayoutInflater inflater = (LayoutInflater)context
192                     .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
193             // instantiate the dialog with the custom Theme
194             final CustomDialog dialog = new CustomDialog(context, R.style.Dialog);
195             View layout = inflater.inflate(R.layout.dialog, null);
196             dialog.addContentView(layout, new LayoutParams(LayoutParams.MATCH_PARENT,
197                     LayoutParams.WRAP_CONTENT));
198             // set the dialog title
199             ((TextView)layout.findViewById(R.id.title)).setText(title);
200             if (drawable != null) {
201                 ((ImageView)layout.findViewById(R.id.imageView1)).setImageDrawable(drawable);
202             } else {
203                 ((ImageView)layout.findViewById(R.id.imageView1)).setVisibility(View.GONE);
204             }
205             // set the confirm button
206             if (positiveButtonText != null) {
207                 ((Button)layout.findViewById(R.id.positiveButton)).setText(positiveButtonText);
208                 if (positiveButtonClickListener != null) {
209                     ((Button)layout.findViewById(R.id.positiveButton))
210                             .setOnClickListener(new View.OnClickListener() {
211                                 public void onClick(View v) {
212                                     positiveButtonClickListener.onClick(dialog,
213                                             DialogInterface.BUTTON_POSITIVE);
214                                 }
215                             });
216                 }
217             } else {
218                 // if no confirm button just set the visibility to GONE
219                 layout.findViewById(R.id.positiveButton).setVisibility(View.GONE);
220             }
221             // set the cancel button
222             if (negativeButtonText != null) {
223                 ((Button)layout.findViewById(R.id.negativeButton)).setText(negativeButtonText);
224                 if (negativeButtonClickListener != null) {
225                     ((Button)layout.findViewById(R.id.negativeButton))
226                             .setOnClickListener(new View.OnClickListener() {
227                                 public void onClick(View v) {
228                                     negativeButtonClickListener.onClick(dialog,
229                                             DialogInterface.BUTTON_NEGATIVE);
230                                 }
231                             });
232                 }
233             } else {
234                 // if no confirm button just set the visibility to GONE
235                 layout.findViewById(R.id.negativeButton).setVisibility(View.GONE);
236             }
237             // set the content message
238             if (message != null) {
239                 ((TextView)layout.findViewById(R.id.message)).setText(message);
240             } else if (contentView != null) {
241                 // if no message set
242                 // add the contentView to the dialog body
243                 ((LinearLayout)layout.findViewById(R.id.content)).removeAllViews();
244                 ((LinearLayout)layout.findViewById(R.id.content)).addView(contentView,
245                         new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
246             }
247             dialog.setContentView(layout);
248 
249             return dialog;
250         }
251 
252     }
253 
254 }

 

Easy Tag Write(3.1)

标签:dial   listen   drawable   ems   dialog   ant   sys   near   ams   

原文地址:http://www.cnblogs.com/jyycnblogs/p/6035289.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!