AlertDialog封装(2018.10.15)

1. AlertDialogUtil类

package com.jack.feiYan2.tool;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.Context;
import android.content.DialogInterface;
import com.jack.workticket.R;

/**
 * Created by liy on 2018-04-09.
 */
public class AlertDialogUtil {
    public static AlertDialog alertDialog = null;
    /**
     * 显示提示消息的对话框:仅提示
     * @param context
     * @param title
     * @param message
     */
    public static void warningDialog(Context context,String title, String message) {
        if(alertDialog == null){
            alertDialog = new AlertDialog.Builder(context, R.style.Theme_AppCompat_Light_Dialog_Alert)
                    .setTitle(title)
                    .setMessage(message)
                    .setPositiveButton(R.string.button_sure, new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {

                        }
                    }).show();
        }else{
            if(alertDialog.isShowing()){

            }else{
                alertDialog.show();
            }
        }
    }

    /**
     * 弹出对话框并有2个按钮可选择处理
     * @param context
     * @param title
     * @param message
     */
    public static void TwoChoiceDialog(Context context,String title, String message,String[] items,final TwoChoiceHandle choiceHandle) {
        if(items.length!=2){
            return;
        }
        if(alertDialog == null){
            alertDialog = new AlertDialog.Builder(context, R.style.Theme_AppCompat_Light_Dialog_Alert)
                    .setTitle(title)
                    .setMessage(message)
                    .setPositiveButton(items[0], new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            choiceHandle.onPositiveButtonHandle();
                        }
                    })
                    .setNegativeButton(items[1], new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            choiceHandle.onNegativeButtonHandle();
                        }
                    }).show();
        }else{
            if(alertDialog.isShowing()){

            }else{
                alertDialog.show();
            }
        }
    }


    public interface TwoChoiceHandle {
        void onPositiveButtonHandle();
        void onNegativeButtonHandle();
    }

    /**
     * 弹出对话框并有3个按钮可选择处理
     * @param activity
     * @param title
     * @param message
     */
    public static void ThreeChoiceDialog(Activity activity, String title, String message, String[] items, final ThreeChoiceHandle choiceHandle) {
        if(items.length!=3){
            return;
        }
        /*if(alertDialog == null){*/
            alertDialog = new AlertDialog.Builder(activity, R.style.Theme_AppCompat_Light_Dialog_Alert)
                    .setTitle(title)
                    .setMessage(message)
                    .setIcon(R.drawable.ic_comfirm)
                    .setPositiveButton(items[0], new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            choiceHandle.onPositiveButtonHandle();
                        }
                    })
                    .setNegativeButton(items[1], new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            choiceHandle.onNegativeButtonHandle();
                        }
                    })
                    .setNeutralButton(items[2], new DialogInterface.OnClickListener() {
                        @Override
                        public void onClick(DialogInterface dialog, int which) {
                            choiceHandle.onNeutralButtonButtonHandle();
                        }
                    }).show();
        /*}else{*/
            if(alertDialog.isShowing()){

            }else{
                if (!activity.isFinishing()){
                    alertDialog.show();
                }
            }
       /* }*/
    }

    public interface ThreeChoiceHandle {
        void onPositiveButtonHandle();
        void onNegativeButtonHandle();
        void onNeutralButtonButtonHandle();
    }

}

2. 调用

  • 显示提示消息的对话框(仅提示)
    AlertDialogUtil.warningDialog(activity,activity.getString(R.string.SocketTimeoutException),activity.getString(R.string.SocketTimeoutException_des));
  • 弹出对话框并有3个按钮可选择处理
final String[] reasons = new String[]{SUPPLEMENT_REASON_CUT_PARTS,SUPPLEMENT_REASON_THREAD,SUPPLEMENT_REASON_ACCESSORIES};
AlertDialogUtil.ThreeChoiceDialog(activity, "please select the reason of noLoad", "",reasons, new AlertDialogUtil.ThreeChoiceHandle() {
                            @Override
                            public void onPositiveButtonHandle() {
                                ToastUtil.show(activity,reasons[0]);
                            }

                            @Override
                            public void onNegativeButtonHandle() {
                                ToastUtil.show(activity,reasons[1]);
                            }

                            @Override
                            public void onNeutralButtonButtonHandle() {
                                ToastUtil.show(activity,reasons[2]);
                            }
                        });

3. 其他

  • R.drawable.ic_comfirm资源文件

    


  • 常量管理GlobalConstant类
package com.jack.feiYan2.tool;

import android.os.Environment;

import java.io.File;

/**
 * Created by liy on 2018-03-29.
 */

public class GlobalConstant {
    public static GlobalConstant globalConstant;

    public GlobalConstant(){

    }
    public static GlobalConstant getGlobalConstant(){
        if(globalConstant==null){
            globalConstant = new GlobalConstant();
        }
        return globalConstant;
    }

    public static final String SUPPLEMENT_REASON_CUT_PARTS = "Cut Parts";
    public static final String SUPPLEMENT_REASON_THREAD = "Thread";
    public static final String SUPPLEMENT_REASON_ACCESSORIES = "Accessories";

}

  • ToastUtil类
    详情见:「ToastUtil」(https://www.jianshu.com/p/c6482047fe4d)

你可能感兴趣的:(AlertDialog封装(2018.10.15))