您的位置:首页 > 其它

弹窗提示工具类 DialogUtil

2020-06-09 10:09 106 查看

自定义弹窗提示类

项目 Demo:ShowDialog

  • 日期选择对话框
  • 时间选择对话框
  • 普通对话框
  • 下拉框对话框
  • 输入框对话框
  • ListView对话框
import android.app.Activity;
import android.app.DatePickerDialog;
import android.app.TimePickerDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.view.KeyEvent;
import android.view.View;
import android.widget.DatePicker;
import android.widget.TimePicker;
import android.widget.Toast;
import java.util.Calendar;
import java.util.Locale;
import java.util.Timer;
import java.util.TimerTask;

public class DialogUtil {
/**
* 日期选择
*
* @param activity
*/
public static void showDatePickerDialog(Activity activity, final MyOnDateSetListener listener) {
Calendar calendar = Calendar.getInstance(Locale.CHINA);
new DatePickerDialog(activity, 0, new DatePickerDialog.OnDateSetListener() {
// 绑定监听器(How the parent is notified that the date is set.)
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar c = Calendar.getInstance();
c.set(year, monthOfYear, dayOfMonth);
listener.onDateSet(DateUtil.calendarToStr(c), c);
}
}
, calendar.get(Calendar.YEAR)
, calendar.get(Calendar.MONTH)
, calendar.get(Calendar.DAY_OF_MONTH)).show();
}

/**
* 每次打开日期选择器,都是上一次选择的日期
*/
public static void showDatePickerDialog(Activity activity, Calendar calendar, final MyOnDateSetListener listener) {
if (calendar == null) {
calendar = Calendar.getInstance(Locale.CHINA);
}
new DatePickerDialog(activity, 0, new DatePickerDialog.OnDateSetListener() {
// 绑定监听器(How the parent is notified that the date is set.)
@Override
public void onDateSet(DatePicker view, int year, int monthOfYear, int dayOfMonth) {
Calendar c = Calendar.getInstance();
c.set(year, monthOfYear, dayOfMonth);
listener.onDateSet(DateUtil.calendarToStr(c), c);
}
}
, calendar.get(Calendar.YEAR)
, calendar.get(Calendar.MONTH)
, calendar.get(Calendar.DAY_OF_MONTH)).show();
}

public interface MyOnDateSetListener {
void onDateSet(String formDate, Calendar calendar);
}

/**
* 时间选择
*/
public static void showTimePickerDialog(Activity activity, final MyOnTimeSetListener listener) {
Calendar calendar = Calendar.getInstance(Locale.CHINA);
new TimePickerDialog( activity, new TimePickerDialog.OnTimeSetListener() {
@Override
public void onTimeSet(TimePicker view, int hourOfDay, int minute) {
Calendar c = Calendar.getInstance();
c.setTimeInMillis(System.currentTimeMillis());
c.set(Calendar.HOUR_OF_DAY, hourOfDay);
c.set(Calendar.MINUTE, minute);
c.set(Calendar.SECOND, 0);
c.set(Calendar.MILLISECOND, 0);
listener.onTimeSet(DateUtil.calendarToStrTime(c), c);
}
}
,calendar.get(Calendar.HOUR_OF_DAY)
,calendar.get(Calendar.MINUTE),true).show();
}

public interface MyOnTimeSetListener {
void onTimeSet(String formDate, Calendar calendar);
}

public static AlertDialog showInputDialog(final Context context, boolean cancelable,
String title, View contentView,
DialogInterface.OnClickListener listener) {
AlertDialog.Builder customizeDialog = new AlertDialog.Builder(context);
customizeDialog.setTitle(title);
customizeDialog.setView(contentView);
customizeDialog.setPositiveButton("确定", listener);
customizeDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (context instanceof Activity) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
KeyboardUtil.hideKeyboard((Activity) context);
}
}, 100);
}
}
});
AlertDialog alertDialog = customizeDialog.create();
if (!cancelable) {
alertDialog.setCancelable(false);
alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
return true;
} else {
return false; //默认返回 false
}
}
});
}
alertDialog.show();
return alertDialog;
}

/**
* 显示一个普通对话框
*/
public static AlertDialog showNormalDialog(Context context, boolean cancelable, String title, String msg,
String positiveString, DialogInterface.OnClickListener listener,
String negativeString, DialogInterface.OnClickListener negativeListener) {
AlertDialog.Builder builder = new AlertDialog.Builder(context);
builder.setTitle(title);
builder.setMessage(msg);
builder.setPositiveButton(positiveString, listener);
builder.setNegativeButton(negativeString, negativeListener);
if (!cancelable) {
AlertDialog alertDialog = builder.create();
alertDialog.setCancelable(false);
alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
return true;
} else {
return false; //默认返回 false
}
}
});
alertDialog.show();
return alertDialog;
}
return builder.show();
}

/**
* 显示一个下拉框对话框
*/
public static AlertDialog showSpinnerDialog(final Context context, boolean cancelable,
String title, View contentView,
DialogInterface.OnClickListener listener) {
AlertDialog.Builder customizeDialog = new AlertDialog.Builder(context);
customizeDialog.setTitle(title);
customizeDialog.setView(contentView);
customizeDialog.setPositiveButton("确定", listener);
customizeDialog.setNeutralButton("取消", listener);

customizeDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (context instanceof Activity) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
KeyboardUtil.hideKeyboard((Activity) context);
}
}, 100);
}
}
});
AlertDialog alertDialog = customizeDialog.create();
if (!cancelable) {
alertDialog.setCancelable(false);
alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
return true;
} else {
return false; //默认返回 false
}
}
});
}
alertDialog.show();

return alertDialog;
}

/**
* 显示一个ListView对话框
*/
public static AlertDialog showListDialog(final Context context, boolean cancelable,
String title, View contentView,
DialogInterface.OnClickListener listener) {
AlertDialog.Builder customizeDialog = new AlertDialog.Builder(context);
customizeDialog.setTitle(title);
customizeDialog.setView(contentView);
customizeDialog.setPositiveButton("确定", listener);
customizeDialog.setNeutralButton("取消", listener);

customizeDialog.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (context instanceof Activity) {
Timer timer = new Timer();
timer.schedule(new TimerTask() {
@Override
public void run() {
KeyboardUtil.hideKeyboard((Activity) context);
}
}, 100);
}
}
});
AlertDialog alertDialog = customizeDialog.create();
if (!cancelable) {
alertDialog.setCancelable(false);
alertDialog.setOnKeyListener(new DialogInterface.OnKeyListener() {
@Override
public boolean onKey(DialogInterface dialog, int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_SEARCH) {
return true;
} else {
return false; //默认返回 false
}
}
});
}
alertDialog.show();

return alertDialog;
}

}
  • 日期选择对话框效果

  • 时间选择对话框效果

  • 普通对话框效果

  • 下拉框对话框效果

  • 输入对话框效果

  • ListView对话框效果

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: