android 对话框 工具类,Android 常用工具类之 DialogUtils

本文介绍了一个由作者亲自编写的DialogUtils工具类,该类用于创建和管理Android应用中的对话框。代码简洁易懂,支持自定义标题、消息、确认、中间和取消按钮,以及相应的点击监听器,同时提供了显示、取消和销毁的监听器。适用于日常开发中的各种对话框需求。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

DialogUtils,此工具类不是网上大家用烂的那一份,是博主亲自编写,亲自测试,代码简洁清晰,可满足日常开发。

import android.app.Activity;

import android.app.AlertDialog;

import android.content.Context;

import android.content.DialogInterface;

import android.view.WindowManager;

/**

* Created on 2021/4/2 13:48

*

* @author Gong Youqiang

*/

public class DialogUtils {

/**

* 显示一个对话框

*

* @param context 上下文对象,最好给Activity,否则需要android.permission.SYSTEM_ALERT_WINDOW

* @param title 标题

* @param message 消息

* @param confirmButton 确认按钮

* @param confirmButtonClickListener 确认按钮点击监听器

* @param centerButton 中间按钮

* @param centerButtonClickListener 中间按钮点击监听器

* @param cancelButton 取消按钮

* @param cancelButtonClickListener 取消按钮点击监听器

* @param onShowListener 显示监听器

* @param cancelable 是否允许通过点击返回按钮或者点击对话框之外的位置关闭对话框

* @param onCancelListener 取消监听器

* @param onDismissListener 销毁监听器

* @return 对话框

*/

public static AlertDialog showAlert(Context context, String title, String message, String confirmButton, DialogInterface.OnClickListener confirmButtonClickListener, String centerButton, DialogInterface.OnClickListener centerButtonClickListener, String cancelButton, DialogInterface.OnClickListener cancelButtonClickListener, DialogInterface.OnShowListener onShowListener, boolean cancelable, DialogInterface.OnCancelListener onCancelListener, DialogInterface.OnDismissListener onDismissListener) {

AlertDialog.Builder promptBuilder = new AlertDialog.Builder(context);

if (title != null) {

promptBuilder.setTitle(title);

}

if (message != null) {

promptBuilder.setMessage(message);

}

if (confirmButton != null) {

promptBuilder.setPositiveButton(confirmButton,

confirmButtonClickListener);

}

if (centerButton != null) {

promptBuilder.setNeutralButton(centerButton,

centerButtonClickListener);

}

if (cancelButton != null) {

promptBuilder.setNegativeButton(cancelButton,

cancelButtonClickListener);

}

promptBuilder.setCancelable(true);

if (cancelable) {

promptBuilder.setOnCancelListener(onCancelListener);

}

AlertDialog alertDialog = promptBuilder.create();

if (!(context instanceof Activity)) {

alertDialog.getWindow()

.setType(WindowManager.LayoutParams.TYPE_SYSTEM_ALERT);

}

alertDialog.setOnDismissListener(onDismissListener);

alertDialog.setOnShowListener(onShowListener);

alertDialog.show();

return alertDialog;

}

/**

* 显示一个对话框

*

* @param context 上下文对象,最好给Activity,否则需要android.permission.SYSTEM_ALERT_WINDOW

* @param title 标题

* @param message 消息

* @param confirmButton 确认按钮

* @param confirmButtonClickListener 确认按钮点击监听器

* @param cancelButton 取消按钮

* @param cancelButtonClickListener 取消按钮点击监听器

* @return 对话框

*/

public static AlertDialog showAlert(Context context, String title, String message, String confirmButton, DialogInterface.OnClickListener confirmButtonClickListener, String cancelButton, DialogInterface.OnClickListener cancelButtonClickListener) {

return showAlert(context, title, message, confirmButton,

confirmButtonClickListener, null, null, cancelButton,

cancelButtonClickListener, null, true, null, null);

}

/**

* 显示一个提示框

*

* @param context 上下文对象,最好给Activity,否则需要android.permission.SYSTEM_ALERT_WINDOW

* @param message 提示的消息

* @param confirmButton 确定按钮的名字

*/

public static AlertDialog showPrompt(Context context, String message, String confirmButton) {

return showAlert(context, null, message, confirmButton, null, null,

null, null, null, null, true, null, null);

}

/**

* 显示一个提示框

*

* @param context 上下文对象,最好给Activity,否则需要android.permission.SYSTEM_ALERT_WINDOW

* @param message 提示的消息

*/

public static AlertDialog showPrompt(Context context, String message) {

return showAlert(context, null, message, "OK", null, null, null, null,

null, null, true, null, null);

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值