1.自定义Dialog:

 1 import android.app.AlertDialog; 2 import android.app.Dialog; 3 import android.content.Context; 4 import android.view.KeyEvent; 5 import android.view.Window; 6  7 public class HintDialog { 8  9     Dialog mDialog = null;10     private Context mContext;11     private IHintDialog mDialogInstance = null;12     13     /**14      * 构造函数15      * @param context16      */17     public HintDialog(Context context) {18         this.mContext =context;19         mDialog = new AlertDialog(mContext){20             public boolean onKeyDown(int keyCode, KeyEvent event) {21                 if(keyCode == KeyEvent.KEYCODE_BACK && mDialogInstance !=null){22                     mDialogInstance.onKeyDown(keyCode, event);23                     return true;24                 }25                 return super.onKeyDown(keyCode, event);26             };27         };28         mDialog.setCancelable(false);29         mDialog.setCanceledOnTouchOutside(false);30     }31     32     33     /**34      * 构造函数35      * @param iLayoutResId 此Dialog采用的自定义布局文件36      *  @param interfaceInstance 此Dialog需要实现的一些接口回调事件37      */38     public void showDialog(int iLayoutResId,IHintDialog interfaceInstance){39         if(mDialog == null || iLayoutResId == 0){40             return;41         }42         mDialogInstance = interfaceInstance;43         mDialog.show();44         mDialog.setContentView(iLayoutResId);45         Window window = mDialog.getWindow();46         if(mDialogInstance!=null){47             mDialogInstance.showWindowDetail(window);48         }49     }50     51     /**52      * 销毁Dialog53      */54     public void dissmissDialog(){55         if(mDialog!=null && mDialog.isShowing()){56             mDialog.dismiss();57         }58     }59     60     /**61      * 判断Dialog是否显示62      * @return63      */64     public boolean isShowing(){65         if(mDialog!=null && mDialog.isShowing()){66             return mDialog.isShowing();67         }68         return false;69     }70     71     72     /**73      * 事件回调接口74      *75      */76     public interface IHintDialog{77         public void onKeyDown(int keyCode,KeyEvent event);78         public void showWindowDetail(Window window);79     }80 }
View Code

2.采用系统Dialog,各种样式:

  1 import android.app.AlertDialog;  2 import android.app.Dialog;  3 import android.content.Context;  4 import android.content.DialogInterface.OnClickListener;  5 import android.content.DialogInterface.OnMultiChoiceClickListener;  6 import android.view.View;  7   8 /**  9  * 对话框封装类 10  *  11  * @author Jack_Lu 12  *  13  */ 14 public class DialogTool { 15  16     public static final int NO_ICON = -1; // 无图标 17  18     /** 19      * 创建消息对话框 20      *  21      * @param context 22      *            上下文 必填 23      * @param iconId 24      *            图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填 25      * @param title 26      *            标题 必填 27      * @param message 28      *            显示内容 必填 29      * @param btnName 30      *            按钮名称 必填 31      * @param listener 32      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 33      * @return 34      */ 35     public static Dialog createMessageDialog(Context context, String title, 36             String message, String btnName, OnClickListener listener, int iconId) { 37         Dialog dialog = null; 38         AlertDialog.Builder builder = new AlertDialog.Builder(context); 39  40         if (iconId != NO_ICON) { 41             // 设置对话框图标 42             builder.setIcon(iconId); 43         } 44         // 设置对话框标题 45         builder.setTitle(title); 46         // 设置对话框消息 47         builder.setMessage(message); 48         // 设置按钮 49         builder.setPositiveButton(btnName, listener); 50         // 创建一个消息对话框 51         dialog = builder.create(); 52  53         return dialog; 54     } 55  56     /** 57      * 创建警示(确认、取消)对话框 58      *  59      * @param context 60      *            上下文 必填 61      * @param iconId 62      *            图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填 63      * @param title 64      *            标题 必填 65      * @param message 66      *            显示内容 必填 67      * @param positiveBtnName 68      *            确定按钮名称 必填 69      * @param negativeBtnName 70      *            取消按钮名称 必填 71      * @param positiveBtnListener 72      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 73      * @param negativeBtnListener 74      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填 75      * @return 76      */ 77     public static Dialog createConfirmDialog(Context context, String title, 78             String message, String positiveBtnName, String negativeBtnName, 79             OnClickListener positiveBtnListener, 80             OnClickListener negativeBtnListener, int iconId) { 81         Dialog dialog = null; 82         AlertDialog.Builder builder = new AlertDialog.Builder(context); 83  84         if (iconId != NO_ICON) { 85             // 设置对话框图标 86             builder.setIcon(iconId); 87         } 88         // 设置对话框标题 89         builder.setTitle(title); 90         // 设置对话框消息 91         builder.setMessage(message); 92         // 设置确定按钮 93         builder.setPositiveButton(positiveBtnName, positiveBtnListener); 94         // 设置取消按钮 95         builder.setNegativeButton(negativeBtnName, negativeBtnListener); 96         // 创建一个消息对话框 97         dialog = builder.create(); 98  99         return dialog;100     }101 102     /**103      * 创建单选对话框104      * 105      * @param context106      *            上下文 必填107      * @param iconId108      *            图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填109      * @param title110      *            标题 必填111      * @param itemsString112      *            选择项 必填113      * @param positiveBtnName114      *            确定按钮名称 必填115      * @param negativeBtnName116      *            取消按钮名称 必填117      * @param positiveBtnListener118      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填119      * @param negativeBtnListener120      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填121      * @param itemClickListener122      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填123      * @return124      */125     public static Dialog createSingleChoiceDialog(Context context,126             String title, String[] itemsString, String positiveBtnName,127             String negativeBtnName, OnClickListener positiveBtnListener,128             OnClickListener negativeBtnListener,129             OnClickListener itemClickListener, int iconId) {130         Dialog dialog = null;131         AlertDialog.Builder builder = new AlertDialog.Builder(context);132 133         if (iconId != NO_ICON) {134             // 设置对话框图标135             builder.setIcon(iconId);136         }137         // 设置对话框标题138         builder.setTitle(title);139         // 设置单选选项, 参数0: 默认第一个单选按钮被选中140         builder.setSingleChoiceItems(itemsString, 0, itemClickListener);141         // 设置确定按钮142         builder.setPositiveButton(positiveBtnName, positiveBtnListener);143         // 设置确定按钮144         builder.setNegativeButton(negativeBtnName, negativeBtnListener);145         // 创建一个消息对话框146         dialog = builder.create();147 148         return dialog;149     }150 151     /**152      * 创建复选对话框153      * 154      * @param context155      *            上下文 必填156      * @param iconId157      *            图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填158      * @param title159      *            标题 必填160      * @param itemsString161      *            选择项 必填162      * @param positiveBtnName163      *            确定按钮名称 必填164      * @param negativeBtnName165      *            取消按钮名称 必填166      * @param positiveBtnListener167      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填168      * @param negativeBtnListener169      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填170      * @param itemClickListener171      *            监听器,需实现android.content.DialogInterface.172      *            OnMultiChoiceClickListener;接口 必填173      * @return174      */175     public static Dialog createMultiChoiceDialog(Context context, String title,176             String[] itemsString, String positiveBtnName,177             String negativeBtnName, OnClickListener positiveBtnListener,178             OnClickListener negativeBtnListener,179             OnMultiChoiceClickListener itemClickListener, int iconId) {180         Dialog dialog = null;181         AlertDialog.Builder builder = new AlertDialog.Builder(context);182 183         if (iconId != NO_ICON) {184             // 设置对话框图标185             builder.setIcon(iconId);186         }187         // 设置对话框标题188         builder.setTitle(title);189         // 设置选项190         builder.setMultiChoiceItems(itemsString, null, itemClickListener);191         // 设置确定按钮192         builder.setPositiveButton(positiveBtnName, positiveBtnListener);193         // 设置确定按钮194         builder.setNegativeButton(negativeBtnName, negativeBtnListener);195         // 创建一个消息对话框196         dialog = builder.create();197 198         return dialog;199     }200 201     /**202      * 创建列表对话框203      * 204      * @param context205      *            上下文 必填206      * @param iconId207      *            图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填208      * @param title209      *            标题 必填210      * @param itemsString211      *            列表项 必填212      * @param negativeBtnName213      *            取消按钮名称 必填214      * @param negativeBtnListener215      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填216      * @return217      */218     public static Dialog createListDialog(Context context, String title,219             String[] itemsString, String negativeBtnName,220             OnClickListener negativeBtnListener,221             OnClickListener itemClickListener, int iconId) {222         Dialog dialog = null;223         AlertDialog.Builder builder = new AlertDialog.Builder(context);224 225         if (iconId != NO_ICON) {226             // 设置对话框图标227             builder.setIcon(iconId);228         }229         // 设置对话框标题230         builder.setTitle(title);231         // 设置列表选项232         builder.setItems(itemsString, itemClickListener);233         // 设置确定按钮234         builder.setNegativeButton(negativeBtnName, negativeBtnListener);235         // 创建一个消息对话框236         dialog = builder.create();237 238         return dialog;239     }240 241     /**242      * 创建自定义(含确认、取消)对话框243      * 244      * @param context245      *            上下文 必填246      * @param iconId247      *            图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填248      * @param title249      *            标题 必填250      * @param positiveBtnName251      *            确定按钮名称 必填252      * @param negativeBtnName253      *            取消按钮名称 必填254      * @param positiveBtnListener255      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填256      * @param negativeBtnListener257      *            监听器,需实现android.content.DialogInterface.OnClickListener接口 必填258      * @param view259      *            对话框中自定义视图 必填260      * @return261      */262     public static Dialog createRandomDialog(Context context, String title,263             String positiveBtnName, String negativeBtnName,264             OnClickListener positiveBtnListener,265             OnClickListener negativeBtnListener, View view, int iconId) {266         Dialog dialog = null;267         AlertDialog.Builder builder = new AlertDialog.Builder(context);268 269         if (iconId != NO_ICON) {270             // 设置对话框图标271             builder.setIcon(iconId);272         }273         // 设置对话框标题274         builder.setTitle(title);275         builder.setView(view);276         // 设置确定按钮277         builder.setPositiveButton(positiveBtnName, positiveBtnListener);278         // 设置确定按钮279         builder.setNegativeButton(negativeBtnName, negativeBtnListener);280         // 创建一个消息对话框281         dialog = builder.create();282 283         return dialog;284     }285 286 }
View Code

更多相关文章

  1. Android 自定义布局对话框避免全屏的设置
  2. Android关闭开机弹出SIM卡变动提示对话框
  3. Android中对话框的工具类
  4. Android全屏对话框(附带延时关闭效果)
  5. android创建自定义对话框
  6. Android重写返回按钮退回桌面(根据源码查看)
  7. Android 保存进度对话框
  8. Android按返回键弹出对话框退出应用程序
  9. 【从头学android】第一个程序,点按钮显示Hello World

随机推荐

  1. Android小知识-自定义View相关知识(1)
  2. [置顶] Android艺术开发探索学习 之 测量
  3. android基础知识02——线程安全2:handler
  4. FcfrtNetStatus实现Android网络监听
  5. 关于Android自定义属性你可能不知道的细
  6. Android如何优雅地向Fragment传递参数
  7. android中多个activity用Intent跳转时,跳
  8. Android(安卓)WebView的缓存!!!
  9. Android系统之路(初识MTK) ------ 更改设
  10. Android读取摄像头的格式