package com.snail.travellingTrail.common.utils;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface.OnClickListener;
import android.content.DialogInterface.OnMultiChoiceClickListener;
import android.view.View;
/**
* 对话框封装类
*
* @author ZhangJunjie
*
*/
public class DialogTool
{
public static final int NO_ICON = -1; //无图标
static ProgressDialog mProgressDialog;
/**
* 创建消息对话框
*
* @param context 上下文 必填
* @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填
* @param title 标题 必填
* @param message 显示内容 必填
* @param btnName 按钮名称 必填
* @param listener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @return Dialog
*/
public static Dialog createMessageDialog(Context context, String title, String message,
String btnName, OnClickListener listener, int iconId)
{
Dialog dialog = null;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
if (iconId != NO_ICON)
{
//设置对话框图标
builder.setIcon(iconId);
}
//设置对话框标题
builder.setTitle(title);
//设置对话框消息
builder.setMessage(message);
//设置按钮
builder.setPositiveButton(btnName, listener);
//创建一个消息对话框
dialog = builder.create();
return dialog;
}
/**
* 创建警示(确认、取消)对话框
*
* @param context 上下文 必填
* @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填
* @param title 标题 必填
* @param message 显示内容 必填
* @param positiveBtnName 确定按钮名称 必填
* @param negativeBtnName 取消按钮名称 必填
* @param positiveBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @param negativeBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @return Dialog
*/
public static Dialog createConfirmDialog(Context context, String title, String message,
String positiveBtnName, String negativeBtnName, OnClickListener positiveBtnListener,
OnClickListener negativeBtnListener, int iconId)
{
Dialog dialog = null;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
if (iconId != NO_ICON)
{
//设置对话框图标
builder.setIcon(iconId);
}
//设置对话框标题
builder.setTitle(title);
//设置对话框消息
builder.setMessage(message);
//设置确定按钮
builder.setPositiveButton(positiveBtnName, positiveBtnListener);
//设置取消按钮
builder.setNegativeButton(negativeBtnName, negativeBtnListener);
//创建一个消息对话框
dialog = builder.create();
return dialog;
}
/**
* 创建单选对话框
*
* @param context 上下文 必填
* @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填
* @param title 标题 必填
* @param itemsString 选择项 必填
* @param positiveBtnName 确定按钮名称 必填
* @param negativeBtnName 取消按钮名称 必填
* @param positiveBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @param negativeBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @param itemClickListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @return Dialog
*/
public static Dialog createSingleChoiceDialog(Context context, String title, String[] itemsString,
String positiveBtnName, String negativeBtnName, OnClickListener positiveBtnListener,
OnClickListener negativeBtnListener, OnClickListener itemClickListener, int iconId)
{
Dialog dialog = null;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
if (iconId != NO_ICON)
{
//设置对话框图标
builder.setIcon(iconId);
}
//设置对话框标题
builder.setTitle(title);
//设置单选选项, 参数0: 默认第一个单选按钮被选中
builder.setSingleChoiceItems(itemsString, 0, itemClickListener);
//设置确定按钮
builder.setPositiveButton(positiveBtnName, positiveBtnListener);
//设置确定按钮
builder.setNegativeButton(negativeBtnName, negativeBtnListener);
//创建一个消息对话框
dialog = builder.create();
return dialog;
}
/**
* 创建复选对话框
*
* @param context 上下文 必填
* @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填
* @param title 标题 必填
* @param itemsString 选择项 必填
* @param positiveBtnName 确定按钮名称 必填
* @param negativeBtnName 取消按钮名称 必填
* @param positiveBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @param negativeBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @param itemClickListener 监听器,需实现android.content.DialogInterface.OnMultiChoiceClickListener;接口 必填
* @return Dialog
*/
public static Dialog createMultiChoiceDialog(Context context, String title, String[] itemsString,
String positiveBtnName, String negativeBtnName, OnClickListener positiveBtnListener,
OnClickListener negativeBtnListener, OnMultiChoiceClickListener itemClickListener, int iconId)
{
Dialog dialog = null;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
if (iconId != NO_ICON)
{
//设置对话框图标
builder.setIcon(iconId);
}
//设置对话框标题
builder.setTitle(title);
//设置选项
builder.setMultiChoiceItems(itemsString, null, itemClickListener);
//设置确定按钮
builder.setPositiveButton(positiveBtnName, positiveBtnListener);
//设置确定按钮
builder.setNegativeButton(negativeBtnName, negativeBtnListener);
//创建一个消息对话框
dialog = builder.create();
return dialog;
}
/**
* 创建列表对话框
*
* @param context 上下文 必填
* @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填
* @param title 标题 必填
* @param itemsString 列表项 必填
* @param negativeBtnName 取消按钮名称 必填
* @param negativeBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @return Dialog
*/
public static Dialog createListDialog(Context context, String title, String[] itemsString,
String negativeBtnName, OnClickListener negativeBtnListener,
OnClickListener itemClickListener, int iconId)
{
Dialog dialog = null;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
if (iconId != NO_ICON)
{
//设置对话框图标
builder.setIcon(iconId);
}
//设置对话框标题
builder.setTitle(title);
//设置列表选项
builder.setItems(itemsString, itemClickListener);
//设置确定按钮
builder.setNegativeButton(negativeBtnName, negativeBtnListener);
//创建一个消息对话框
dialog = builder.create();
return dialog;
}
/**
* 创建自定义(含确认、取消)对话框
*
* @param context 上下文 必填
* @param iconId 图标,如:R.drawable.icon 或 DialogTool.NO_ICON 必填
* @param title 标题 必填
* @param positiveBtnName 确定按钮名称 必填
* @param negativeBtnName 取消按钮名称 必填
* @param positiveBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @param negativeBtnListener 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @param view 对话框中自定义视图 必填
* @return Dialog
*/
public static Dialog createCustomDialog(Context context, String title, String positiveBtnName,
String negativeBtnName, OnClickListener positiveBtnListener,
OnClickListener negativeBtnListener,View view, int iconId)
{
Dialog dialog = null;
AlertDialog.Builder builder = new AlertDialog.Builder(context);
if (iconId != NO_ICON)
{
//设置对话框图标
builder.setIcon(iconId);
}
//设置对话框标题
builder.setTitle(title);
builder.setView(view);
//设置确定按钮
builder.setPositiveButton(positiveBtnName, positiveBtnListener);
//设置确定按钮
builder.setNegativeButton(negativeBtnName, negativeBtnListener);
//创建一个消息对话框
dialog = builder.create();
return dialog;
}
private static void createProgressDialog (Context context,String text){
mProgressDialog = new ProgressDialog(context, ProgressDialog.STYLE_SPINNER);
mProgressDialog.setIndeterminate(true);
mProgressDialog.setCancelable(true);
mProgressDialog.setCanceledOnTouchOutside(false);
mProgressDialog.setMessage(text);
}
/**
* 创建进度对话框
* @param context
* @param text 提示信息
* @return
*/
public static void showProgressDialog(Context context,String text){
createProgressDialog(context,text);
mProgressDialog.show();
}
/**
* 停止显示进度对话框
*/
public static void cancelProgressDialog(){
if (mProgressDialog != null)
{
mProgressDialog.cancel();
mProgressDialog = null;
}
}
}