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 context
16      */
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      * 销毁Dialog
53      */
54     public void dissmissDialog(){
55         if(mDialog!=null && mDialog.isShowing()){
56             mDialog.dismiss();
57         }
58     }
59     
60     /**
61      * 判断Dialog是否显示
62      * @return
63      */
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

相关文章: