写在前面: 对话框在平时的开发工作中使用率很频繁,但是很多开发者每次使用都去写一堆代码,如此,不单单效率不高,而且代码也不优...为此,写了简单的封装。

效果如:

关键类DialogHelper.java

public class DialogHelper {

/***

* 获取一个dialog对象,进行相关操作

*

* @param context

* @return

*/

public static AlertDialog.Builder getDialog(Context context) {

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

return builder;

}

/***

* 获取一个进度对话框(耗时操作使用)

*

* @param context

* @param message

* @return

*/

public static ProgressDialog getWaitDialog(Context context, String message) {

ProgressDialog waitDialog = new ProgressDialog(context);

if (!TextUtils.isEmpty(message)) {

waitDialog.setMessage(message);

}

return waitDialog;

}

public static AlertDialog.Builder getMessageDialog(Context context, String message, DialogInterface.OnClickListener onClickListener) {

AlertDialog.Builder builder = getDialog(context);

builder.setMessage(message);

builder.setPositiveButton("确定", onClickListener);

return builder;

}

/**

* 获取一个信息对话框

*

* @param context

* @param message

* @return

*/

public static AlertDialog.Builder getMessageDialog(Context context, String message) {

return getMessageDialog(context, message, null);

}

public static AlertDialog.Builder getSelectDialog(Context context, String title, String[] arrays, DialogInterface.OnClickListener onClickListener) {

AlertDialog.Builder builder = getDialog(context);

builder.setItems(arrays, onClickListener);

if (!TextUtils.isEmpty(title)) {

builder.setTitle(title);

}

builder.setPositiveButton("取消", null);

return builder;

}

/**

* 选择对话框

*

* @param context

* @param arrays

* @param onClickListener

* @return

*/

public static AlertDialog.Builder getSelectDialog(Context context, String[] arrays, DialogInterface.OnClickListener onClickListener) {

return getSelectDialog(context, "", arrays, onClickListener);

}

/**

* 可设置内容、确定监听对话框

*

* @param context

* @param message

* @param onClickListener

* @return

*/

public static AlertDialog.Builder getConfirmDialog(Context context, String message, DialogInterface.OnClickListener onClickListener) {

AlertDialog.Builder builder = getDialog(context);

builder.setMessage(Html.fromHtml(message));

builder.setPositiveButton("确定", onClickListener);

builder.setNegativeButton("取消", null);

return builder;

}

/**

* 可设置内容、两个按钮监听对话框

*

* @param context

* @param message

* @param onOkClickListener

* @param onCancleClickListener

* @return

*/

public static AlertDialog.Builder getConfirmDialog(Context context, String message, DialogInterface.OnClickListener onOkClickListener, DialogInterface.OnClickListener onCancleClickListener) {

AlertDialog.Builder builder = getDialog(context);

builder.setMessage(message);

builder.setPositiveButton("确定", onOkClickListener);

builder.setNegativeButton("取消", onCancleClickListener);

return builder;

}

/**

* 可设置标题、内容、按钮文字,监听的对话框

*

* @param context

* @param title

* @param message

* @param okString

* @param cancleString

* @param onOkClickListener

* @param onCancleClickListener

* @return

*/

public static AlertDialog.Builder getConfirmDialog(Context context,

String title,

String message,

String okString,

String cancleString,

DialogInterface.OnClickListener onOkClickListener,

DialogInterface.OnClickListener onCancleClickListener) {

AlertDialog.Builder builder = getDialog(context);

if (!TextUtils.isEmpty(title)) {

builder.setTitle(title);

}

builder.setMessage(message);

builder.setPositiveButton(okString, onOkClickListener);

builder.setNegativeButton(cancleString, onCancleClickListener);

return builder;

}

/**

* 创建可自定义对话框内容和按钮文字的对话框

*

* @param context

* @param message 对话框内容

* @param okString 确定按钮文字

* @param cancleString 取消按钮文字

* @param onOkClickListener 确定监听

* @param onCancleClickListener 取消监听

* @return

*/

public static AlertDialog.Builder getConfirmDialog(Context context,

String message,

String okString,

String cancleString,

DialogInterface.OnClickListener onOkClickListener,

DialogInterface.OnClickListener onCancleClickListener) {

return getConfirmDialog(context, "", message, okString, cancleString, onOkClickListener, onCancleClickListener);

}

public static AlertDialog.Builder getSingleChoiceDialog(Context context, String title, String[] arrays, int selectIndex, DialogInterface.OnClickListener onClickListener) {

AlertDialog.Builder builder = getDialog(context);

builder.setSingleChoiceItems(arrays, selectIndex, onClickListener);

if (!TextUtils.isEmpty(title)) {

builder.setTitle(title);

}

builder.setNegativeButton("取消", null);

return builder;

}

/**

* 单选对话框

*

* @param context

* @param arrays 可供选择的数据

* @param selectIndex 默认选中的索引

* @param onClickListener

* @return

*/

public static AlertDialog.Builder getSingleChoiceDialog(Context context, String[] arrays, int selectIndex, DialogInterface.OnClickListener onClickListener) {

return getSingleChoiceDialog(context, "", arrays, selectIndex, onClickListener);

}

}

注:效果图中的每个对话框弹出都是随机的,所以会看到重复的,还有一个只显示透明效果的,是因为只是获取了对话框对象,视图可供自定义。

源码已上传至github,关注微信公众号,回复 “demo”,获取地址,欢迎交流

Android辅助服务监听dialog,Android开发中对话框辅助类——DialogHelper相关推荐

  1. android 实现自定义监听接口,Android在自定义类中实现自定义监听器方式

    Android在自定义类中实现自定义监听器方式 发布时间:2020-08-31 06:19:39 来源:脚本之家 阅读:203 作者:Simon_Qi 监听器可以说是Android开发中最常用的东西之 ...

  2. android注册广播监听按钮,Android实现广播监听HOME键操作

    先写了个Service,在服务中通过广播来监听HOME键操作: public class HomeService extends Service{ private MonitoHomeReceiver ...

  3. android 控件监听方法,Android界面控件(2)—注册点击事件监听器

    Button和ImageButton 1.添加控件 1.打开Android项目下,res文件夹中的 layout 的 activity_main.xml 文件 2.可视化界面拖拽添加或修改 xml 文 ...

  4. android 发送彩信监听,在Android中发送短信和彩信,监听短信并显示

    发送短信: String body="this is sms demo"; Intent mmsintent = new Intent(Intent.ACTION_SENDTO, ...

  5. android自定义键盘监听输入框,Android 自定义键盘的车牌输入框

    版权声明:本文为博主原创文章,未经博主允许不得转载. 开发过与停车场有关的程序猿应该都涉及到车牌输入的开发,一些要求不高的就直接一个简单的输入框就搞定了,但是对于用户日益增加的体验度和产品经理永远满足 ...

  6. android 2.1 监听电话状态并自动接听来电

    一.开发环境       Elispse5.5,JDK1.6,Aadroid 2.1 二.开发中使用到的重点技术点:       距离感应(SENSOR_SERVICE ),音讯管理(AUDIO_SE ...

  7. Android的Button监听

    1.android简单按钮监听----单个监听 start = (Button)findViewById(R.id.btnStart); start.setOnClickListener(new On ...

  8. Android 辅助服务实战-游戏点击器

    Android 辅助服务实战-游戏点击器 背景: 前几年我一直在玩一款氪金养成类手游<<末日危机>>,每天都有任务需要完成,那时游戏里面还没有一键收菜,我去年(接手了公会里面不 ...

  9. android 耳机监听权限,android 耳机监听

    1.判断耳机是否插入: AudioManager的isWiredHeadsetOn()方法: AudioManager localAudioManager = (AudioManager) getSy ...

最新文章

  1. 在Ubuntu下编译安装atom编辑器
  2. makefile 通用模板(修正第一次版本)
  3. 防遗忘笔记,Fedora交叉编译window下的virt-iewer的汉化
  4. Oracle LAST_DAY(d)
  5. 我的游测之路 | 揭秘游戏测试神秘面纱(一)
  6. 当鼠标移入时切换背景图时闪烁的问题
  7. qt 旋转后的三维坐标_OpenGL + Qt: 3 - 旋转动画和键盘操纵
  8. Android 四大组件学习之ContentProvider四
  9. AVS2/AVS3测试视频和VLC播放器
  10. docker视频教程下载
  11. win10系统玩部分老游戏时提示0xc0000022的解决方法.
  12. 关于EF Core中同一个实体被多次tracked的问题
  13. 3GPP协议R15完整版下载
  14. panabit部署模式
  15. 楷书书法规则_写好楷书的五条规律,不懂这些,书法就很难入门
  16. 一、酷狗 歌词搜索 Indy TIdhttp
  17. torch.bmm()函数解读
  18. 数字化转型定义及优秀案例
  19. 2021年全球望远镜收入大约1161.6百万美元,预计2028年达到1275百万美元
  20. QQ2012如何恢复“合并会话窗口”为多个聊天窗口?

热门文章

  1. 从零开始学习jQuery-------jQuery元素选择器(三)
  2. Ext JS学习第二天 我们所熟悉的javascript(一)
  3. 从键盘读取数据,回车才能显示的问题
  4. 在Android中调用KSOAP2库访问webservice服务出现的服务端传入参数为null的问题解决
  5. 解决Matlab画图直接保存.eps格式而导致图不全的问题
  6. H5支付完整demo及问题总结【已解决】
  7. make -C $(KDIR) M=$(PWD) modules
  8. oracle缓存怎么看,Oracle从缓存里面查找真实的执行计划
  9. php gtk教程,PHP-GTK 介绍及其应用-PHP教程,PHP应用
  10. Kernel Method核方法—基本概念