package com.jmheart.tools;
import java.util.Calendar;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.app.DatePickerDialog;
import android.app.Dialog;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnClickListener;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.animation.Animation;
import android.view.animation.AnimationUtils;
import android.view.animation.AnticipateOvershootInterpolator;
import android.widget.DatePicker;
import android.widget.EditText;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.jmheart.R;
import com.wheel.StrericWheelAdapter;
import com.wheel.WheelView;
public class DialogTools {
public int minYear = 1970; //最小年份
public int fontSize = 13; //字体大小
public static WheelView yearWheel;
public static WheelView monthWheel;
public static WheelView dayWheel;
public static WheelView hourWheel;
public static WheelView minuteWheel;
public static WheelView secondWheel;
public static String[] yearContent=null;
public static String[] monthContent=null;
public static String[] dayContent=null;
public static String[] hourContent = null;
public static String[] minuteContent=null;
public static String[] secondContent=null;
/**
* 创建普单按钮对话框
*
* @param ctx
* @param iconId
* 图标,如:R.drawable.icon 必填
* @param title
* 标题 必填
* @param message
* 显示内容 必填
* @param btnName
* 按钮名称 必填
* @param listener
* 监听器
* @return
*/
public static Dialog createDialog(Context ctx, int iconId, String title, String message, String btnName, android.content.DialogInterface.OnClickListener listener) {
Dialog dialog = null;
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(ctx);
// 设置对话框的图标
builder.setIcon(iconId);
// 设置对话框的标题
builder.setTitle(title);
// 设置对话框的显示内容
builder.setMessage(message);
// 添加按钮,android.content.DialogInterface.OnClickListener.OnClickListener
builder.setPositiveButton(btnName, listener);
dialog = builder.create();
return dialog;
}
/**
* 创建双按钮对话框
*
* @param ctx
* 上下文必填
* @param iconId
* 图标,如:R.drawable.icon[不想显示就写0] 必填
* @param title
* 标题 必填
* @param message
* 显示内容 必填
* @param btnPositiveName
* 第一个按钮名必填
* @param listener_Positive
* 第一个监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @param btnNegativeName
* 第二个按钮名必填
* @param listener_Negative
* 第二个监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @return 对话框实现
*/
public static Dialog createDialog(Context ctx, int iconId, String title, String message, String btnPositiveName, android.content.DialogInterface.OnClickListener listener_Positive,
String btnNegativeName, android.content.DialogInterface.OnClickListener listener_Negative) {
Dialog dialog = null;
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(ctx);
// 设置对话框的图标
builder.setIcon(iconId);
// 设置对话框的标题
builder.setTitle(title);
// 设置对话框的显示内容
builder.setMessage(message);
// 添加按钮,android.content.DialogInterface.OnClickListener.OnClickListener
builder.setPositiveButton(btnPositiveName, listener_Positive);
// 添加按钮,android.content.DialogInterface.OnClickListener.OnClickListener
builder.setNegativeButton(btnNegativeName, listener_Negative);
dialog = builder.create();
return dialog;
}
/**
* 创建列表对话框
*
* @param ctx
* 上下文必填
* @param iconId
* 图标,如:R.drawable.icon 必填
* @param title
* 标题 必填
* @param itemsId
* 字符串数组资源id 必填
* @param listener
* 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @return
*/
public static Dialog createListDialog(Context ctx, int iconId, String title, int itemsId, android.content.DialogInterface.OnClickListener listener) {
Dialog dialog = null;
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(ctx);
// 设置对话框的图标
builder.setIcon(iconId);
// 设置对话框的标题
builder.setTitle(title);
// 添加按钮,android.content.DialogInterface.OnClickListener.OnClickListener
builder.setItems(itemsId, listener);
dialog = builder.create();
return dialog;
}
/**
*
* @param ctx
* 上下文必填
* @param iconId
* 图标,如:R.drawable.icon 必填
* @param title
* 标题 必填
* @param itemsId
* 字符串数组资源id 必填
* @param listener
* 监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @param btnName
* 按钮名称 必填
* @param listener2
* 按钮监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @return
*/
public static Dialog createRadioDialog(Context ctx, int iconId, String title, int itemsId, android.content.DialogInterface.OnClickListener listener, String btnName,
android.content.DialogInterface.OnClickListener listener2) {
Dialog dialog = null;
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(ctx);
// 设置对话框的图标
builder.setIcon(iconId);
// 设置对话框的标题
builder.setTitle(title);
// 0: 默认第一个单选按钮被选中
builder.setSingleChoiceItems(itemsId, 0, listener);
builder.setPositiveButton(btnName, listener2);
dialog = builder.create();
return dialog;
}
/**
* 创建复杂对话框
*
* @param ctx
* 上下文必填
* @param iconId
* 图标,如:R.drawable.icon 必填
* @param title
* 标题 必填
* @param itemsId
* 字符串数组资源id 必填
* @param flags
* 初始情况 必填
* @param listener
* 单击按钮项监听器,需实现android.content.DialogInterface. OnMultiChoiceClickListener接口 必填
* @param btnName
* 按钮名称 必填
* @param listener2
* 按钮监听器,需实现android.content.DialogInterface.OnClickListener接口 必填
* @return
*/
public static Dialog createCheckBoxDialog(Context ctx, int iconId, String title, int itemsId, boolean[] flags, android.content.DialogInterface.OnMultiChoiceClickListener listener, String btnName,
android.content.DialogInterface.OnClickListener listener2) {
Dialog dialog = null;
android.app.AlertDialog.Builder builder = new android.app.AlertDialog.Builder(ctx);
// 设置对话框的图标
builder.setIcon(iconId);
// 设置对话框的标题
builder.setTitle(title);
builder.setMultiChoiceItems(itemsId, flags, listener);
builder.setPositiveButton(btnName, listener2);
dialog = builder.create();
return dialog;
}
/**
* 日期对话框
*
* @param context
* 上下文
* @param v
*/
public static Dialog createDateDialog(Context context, final View v) {
Dialog dialog = null;
Calendar calender = Calendar.getInstance();
dialog = new DatePickerDialog(context, new DatePickerDialog.OnDateSetListener() {
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
if (v instanceof TextView) {
((TextView) v).setText(year + "年"+ (monthOfYear + 1) + "月"+ dayOfMonth + "日");
}
if (v instanceof EditText) {
((EditText) v).setText(year + "年" + (monthOfYear + 1) + "月" + dayOfMonth + "日");
}
}
}, calender.get(calender.YEAR), calender.get(calender.MONTH), calender.get(calender.DAY_OF_MONTH));
return dialog;
}
/**
* 加载对话框
*
* @param context
* 上下文
* @param msg
* 内容
* @return
*/
public static ProgressDialog createLoadDialog(Context context, String msg) {
android.app.ProgressDialog dialog = new ProgressDialog(context);
// 设置风格为圆形进度条
dialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
// 设置内容
dialog.setMessage(msg);
// 设置进度条是否为不明�?
dialog.setIndeterminate(false);
// 设置进度条是否可以按�?��键取�?
dialog.setCancelable(false);
return dialog;
}
private static Dialog dialog;
private static android.app.AlertDialog.Builder builder;
public static void showProgressDialog(Context context) {
showProgressDialog(context, "请等候,数据加载中...");
}
public static void showProgressDialog(Context context, String msg) {
LayoutInflater inflater = LayoutInflater.from(context);
View v = inflater.inflate(R.layout.loading_dialog, null);// 得到加载view
LinearLayout layout = (LinearLayout) v.findViewById(R.id.dialog_view);// 加载布局
// main.xml中的ImageView
ImageView spaceshipImage = (ImageView) v.findViewById(R.id.img);
TextView tipTextView = (TextView) v.findViewById(R.id.tipTextView);// 提示文字
// 加载动画
Animation hyperspaceJumpAnimation = AnimationUtils.loadAnimation(
context, R.anim.dialog_anim);
// 使用ImageView显示动画
spaceshipImage.startAnimation(hyperspaceJumpAnimation);
tipTextView.setText(msg);// 设置加载信息
dialog = new Dialog(context, R.style.Dialog_NoTitle);// 创建自定义样式dialog
dialog.setCancelable(true);// 不可以用“返回键”取�?
dialog.setContentView(layout, new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT));// 设置布局
dialog.show();
}
public static void closeProgressDialog() {
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
}
/**
* 当判断当前手机没有网络时使用
*
* @param context
*/
public static void showNoNetWork(final Context context) {
AlertDialog.Builder builder = new Builder(context);
builder.setIcon(R.drawable.ic_launcher)//
.setTitle(R.string.app_name)//
.setMessage("当前无网络").setPositiveButton("设置", new OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
// 跳转到系统的网络设置界面
Intent intent = new Intent();
intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
context.startActivity(intent);
}
}).setNegativeButton("知道了 ",null).show();
}
/**
* 创建自定义对话框
*
* @param context
*/
public static Dialog createSelfDialog(Context context,int iconId,String title, View view) {
builder = new android.app.AlertDialog.Builder(context);
builder.setCancelable(true);
builder.setIcon(iconId);
builder.setTitle(title);
builder.setView(view);
return builder.create();
}
public static Dialog createSelfDialog(Context context,int iconId,String title, View view,DialogInterface.OnClickListener negativelistener,DialogInterface.OnClickListener positivelistener) {
builder = new android.app.AlertDialog.Builder(context);
builder.setCancelable(true);
builder.setIcon(iconId);
builder.setTitle(title);
builder.setView(view);
builder.setNegativeButton("确定", negativelistener);
builder.setPositiveButton("取消", positivelistener);
return builder.create();
}
public static Dialog TimeDialog(Context c,final View v)
{
initContent();
View view = LayoutInflater.from(c).inflate(R.layout.time_picker, null);
Calendar calendar = Calendar.getInstance();
int curYear = calendar.get(Calendar.YEAR);
int curMonth= calendar.get(Calendar.MONTH)+1;
int curDay = calendar.get(Calendar.DAY_OF_MONTH);
int curHour = calendar.get(Calendar.HOUR_OF_DAY);
int curMinute = calendar.get(Calendar.MINUTE);
int curSecond = calendar.get(Calendar.SECOND);
yearWheel = (WheelView)view.findViewById(R.id.yearwheel);
monthWheel = (WheelView)view.findViewById(R.id.monthwheel);
dayWheel = (WheelView)view.findViewById(R.id.daywheel);
hourWheel = (WheelView)view.findViewById(R.id.hourwheel);
minuteWheel = (WheelView)view.findViewById(R.id.minutewheel);
secondWheel = (WheelView)view.findViewById(R.id.secondwheel);
AlertDialog.Builder builder = new AlertDialog.Builder(c);
builder.setView(view);
yearWheel.setAdapter(new StrericWheelAdapter(yearContent));
yearWheel.setCurrentItem(curYear-2013);
yearWheel.setCyclic(true);
yearWheel.setInterpolator(new AnticipateOvershootInterpolator());
monthWheel.setAdapter(new StrericWheelAdapter(monthContent));
monthWheel.setCurrentItem(curMonth-1);
monthWheel.setCyclic(true);
monthWheel.setInterpolator(new AnticipateOvershootInterpolator());
dayWheel.setAdapter(new StrericWheelAdapter(dayContent));
dayWheel.setCurrentItem(curDay-1);
dayWheel.setCyclic(true);
dayWheel.setInterpolator(new AnticipateOvershootInterpolator());
hourWheel.setAdapter(new StrericWheelAdapter(hourContent));
hourWheel.setCurrentItem(curHour);
hourWheel.setCyclic(true);
hourWheel.setInterpolator(new AnticipateOvershootInterpolator());
minuteWheel.setAdapter(new StrericWheelAdapter(minuteContent));
minuteWheel.setCurrentItem(curMinute);
minuteWheel.setCyclic(true);
minuteWheel.setInterpolator(new AnticipateOvershootInterpolator());
secondWheel.setAdapter(new StrericWheelAdapter(secondContent));
secondWheel.setCurrentItem(curSecond);
secondWheel.setCyclic(true);
secondWheel.setInterpolator(new AnticipateOvershootInterpolator());
builder.setTitle("选取时间");
builder.setPositiveButton("确 定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
StringBuffer sb = new StringBuffer();
sb.append(yearWheel.getCurrentItemValue()).append("-")
.append(monthWheel.getCurrentItemValue()).append("-")
.append(dayWheel.getCurrentItemValue());
sb.append(" ");
sb.append(hourWheel.getCurrentItemValue())
.append(":").append(minuteWheel.getCurrentItemValue())
.append(":").append(secondWheel.getCurrentItemValue());
if (v instanceof TextView) {
((TextView) v).setText("下单时间:"+sb);
}
if (v instanceof EditText) {
((EditText) v).setText(sb);
}
dialog.cancel();
}
});
return builder.show();
}
public static void initContent()
{
yearContent = new String[10];
for(int i=0;i<10;i++)
yearContent[i] = String.valueOf(i+2013);
monthContent = new String[12];
for(int i=0;i<12;i++)
{
monthContent[i]= String.valueOf(i+1);
if(monthContent[i].length()<2)
{
monthContent[i] = "0"+monthContent[i];
}
}
dayContent = new String[31];
for(int i=0;i<31;i++)
{
dayContent[i]=String.valueOf(i+1);
if(dayContent[i].length()<2)
{
dayContent[i] = "0"+dayContent[i];
}
}
hourContent = new String[24];
for(int i=0;i<24;i++)
{
hourContent[i]= String.valueOf(i);
if(hourContent[i].length()<2)
{
hourContent[i] = "0"+hourContent[i];
}
}
minuteContent = new String[60];
for(int i=0;i<60;i++)
{
minuteContent[i]=String.valueOf(i);
if(minuteContent[i].length()<2)
{
minuteContent[i] = "0"+minuteContent[i];
}
}
secondContent = new String[60];
for(int i=0;i<60;i++)
{
secondContent[i]=String.valueOf(i);
if(secondContent[i].length()<2)
{
secondContent[i] = "0"+secondContent[i];
}
}
}
}