zoukankan      html  css  js  c++  java
  • Dialog对话框管理工具类

    import android.app.Dialog;
    import android.content.Context;
    import android.content.DialogInterface;
    import android.content.DialogInterface.OnKeyListener;
    import android.view.Gravity;
    import android.view.KeyEvent;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.view.Window;
    import android.view.WindowManager;
    import android.widget.Button;
    import android.widget.TextView;
    
    /**
    * Dialog显示的工具类
    *
    * @author wangfubin
    *
    */
    public class PromptManager {
    
            /**
             * 显示一个自定义的Dialog
             *
             * @param context
             * @param mag
             * 想要显示的信息
             * @param listener
             * 回调接口
             */
            public static void showDialog(Context context, String mag,
                            final dialogListener listener) {
                    final Dialog d = getDialog(context, 0.5f);
                    TextView tv = (TextView) d.findViewById(R.id.textView1);
                    tv.setText(mag);
                    d.setCanceledOnTouchOutside(true);
                    Button ok = (Button) d.findViewById(R.id.button1);
                    Button no = (Button) d.findViewById(R.id.button2);
    
                    ok.setOnClickListener(new OnClickListener() {
    
                            @Override
                            public void onClick(View v) {
                                    listener.clickBut(true);
                                    d.dismiss();
                            }
                    });
                    no.setOnClickListener(new OnClickListener() {
    
                            @Override
                            public void onClick(View v) {
                                    listener.clickBut(false);
                                    d.dismiss();
                            }
                    });
                    d.show();
    
            }
    
            /**
             * 获取显示Dialog的实例对象!
             *
             * @param context
             * @param f
             * 透明度
             * @return
             */
            private static Dialog getDialog(Context context, float f) {
                    final Dialog d = new Dialog(context, R.style.init_game);
                    Window window = d.getWindow();
                    WindowManager.LayoutParams lp = window.getAttributes();
                    lp.dimAmount = f;// 越大越不透明
                    window.setAttributes(lp);
                    window.addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
                    window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
                                    WindowManager.LayoutParams.FLAG_FULLSCREEN);
                    d.setContentView(R.layout.pop_twobtn);
                    return d;
            }
    
            /**
             * 按功能键,模拟出来Menu进行显示!
             *
             * @param context
             * @param mag
             * 要显示的信息!
             * @param listener
             * 回调接口
             */
            public static void showMenu(Context context, String mag,
                            final dialogListener listener) {
                    final Dialog d = getDialog(context, 0.5f);
                    TextView tv = (TextView) d.findViewById(R.id.textView1);
                    tv.setText(mag);
                    Window window = d.getWindow();
                    window.setGravity(Gravity.BOTTOM);
                    Button ok = (Button) d.findViewById(R.id.button1);
                    Button no = (Button) d.findViewById(R.id.button2);
                    d.setCanceledOnTouchOutside(true);// 设置点击外部可以取消这个Dialog
                    d.setOnKeyListener(new OnKeyListener() {
    
                            @Override
                            public boolean onKey(DialogInterface dialog, int keyCode,
                                            KeyEvent event) {
                                    if (keyCode == KeyEvent.KEYCODE_MENU) {
                                            d.dismiss();
                                    }
                                    return false;
                            }
                    });
    
                    ok.setOnClickListener(new OnClickListener() {
    
                            @Override
                            public void onClick(View v) {
                                    listener.clickBut(true);
                                    d.dismiss();
                            }
                    });
                    no.setOnClickListener(new OnClickListener() {
    
                            @Override
                            public void onClick(View v) {
                                    /**
                                     * 在按功能键弹出的Dialog上点击取消,其实是什么事情都没做(没写代码) 在baseActivity中,可以看看理解下!
                                     */
                                    listener.clickBut(false);
                                    d.dismiss();
                            }
                    });
                    d.show();
    
            }
    
            /**
             * 写一个接口,进行函数的回调,让调用者确定究竟做什么!
             *
             * @author liuzhao
             */
            public interface dialogListener {
                    void clickBut(boolean isOk);
            }
    }
  • 相关阅读:
    线性结构2 一元多项式的乘法与加法运算 【STL】
    Maximum Subsequence Sum 【DP】
    第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 L 用来作弊的药水 【快速幂】
    第13届景驰-埃森哲杯广东工业大学ACM程序设计大赛 A 跳台阶【DP】
    Wannafly挑战赛12 B T95要减肥 【贪心】
    表达式转换 【模拟】
    Wannafly挑战赛12 A 银行存款 【DP】【DFS】
    PAT 天梯赛 L3-008. 喊山 【BFS】
    PAT 天梯赛 L3-003. 社交集群 【并查集】
    装箱问题【STL】
  • 原文地址:https://www.cnblogs.com/androidsuperman/p/3502918.html
Copyright © 2011-2022 走看看