Android自定义控件实现万能的对话框
发布时间 - 2026-01-11 00:12:26 点击率:次自定义控件有段时间没更新了,今天给大家带来一个新的对话框样式,本着用更少的代码实现更丰富的功能。

由于对话框对用户的操作有影响,所以目前app上的对话框用的已经比较少了,但还是有一些比较重要的信息提示需要使用对话框的样式,例如版本更新,账户异地登陆等。
下面来看自定义对话框的样式:
图1:自定义提示对话框
图2:自定义警告对话框
图3:默认提示对话框
图4:默认警告对话框
这里面带来了两种对话框的样式,也是比较常见的。以上所有的背景颜色,文字颜色,以及按钮的点击效果都是可以自定义的。
下面分别看看四种对话框是如何实现的
图1:
DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)
.setTitle("发现新版本V5.4.1")
.setContent("Version5.4.1\n【更新默认表情】——同步最新表情,聊天更有趣\n" +
"【资料卡大升级】——全新视觉设计,增加陌生人来源信息\n" +
"【消息跳动优化】——鼠标悬浮在消息列表上时顺序不动,再也不怕点错啦\n" +
"【收藏预览升级】——完善图片浏览体验,优化网页预览效果\n" +
"【更多体验优化】——群成员列表宽度可调;优化天气定位策略;优化图片查看器")
.setStyle(DialogM.STYLE_TIP)
.setPositiveButton("更新", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(DialogMActivity.this, "submit", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(DialogMActivity.this, "cancel", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
builder.create().show();
图2:
DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)
.setTitle("Hello")
.setTitleBackColor(getResources().getColor(R.color.content))
.setTitleTextColor(getResources().getColor(R.color.mainColor))
.setAlertButtonBackColor(getResources().getColor(R.color.mainColor))
.setAlertButtonTextColor(getResources().getColor(android.R.color.white))
.setCanceledOnTouchOutside(false)
.setAlertButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setContent("landptf");
builder.create().show();
图3:
DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)
.setContent("landptf")
.setStyle(DialogM.STYLE_TIP)
.setPositiveButton("submit", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(DialogMActivity.this, "submit", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
})
.setNegativeButton("cancel", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Toast.makeText(DialogMActivity.this, "cancel", Toast.LENGTH_SHORT).show();
dialog.dismiss();
}
});
builder.create().show();
图4:
DialogM.Builder builder = new DialogM.Builder(DialogMActivity.this)
.setAlertButton("", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
})
.setContent("landptf");
builder.create().show();
图3与图4完全使用了默认的颜色,我在代码里指定了红色为主色调。
所有的操作都是通过链式调用,可以根据自己app的风格随意改变颜色。当然了你也可以把代码下载下来增加更丰富的功能。
源码比较长,有兴趣的童鞋可以点击这里查看。
源码中采用了建造者模式,可以方便链式调用,使代码看起来更简洁。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
# Android
# 对话框
# Android中自定义对话框(Dialog)的实例代码
# Android中制作自定义dialog对话框的实例分享
# Android实现自定义圆角对话框Dialog的示例代码
# Android自定义等待对话框
# Android对话框自定义标题 对话框标题美化操作
# Android自定义对话框Dialog
# Android如何自定义升级对话框示例详解
# 自定义
# 链式
# 都是
# 可调
# 我在
# 是有
# 鼠标
# 两种
# 点击这里
# 带来了
# 不动
# 采用了
# 给大家
# 少了
# 有兴趣
# 四种
# 可以根据
# 这里面
# 你也可以
相关栏目:
【
网站优化151355 】
【
网络推广146373 】
【
网络技术251813 】
【
AI营销90571 】
相关推荐:
音响网站制作视频教程,隆霸音响官方网站?
深圳网站制作培训,深圳哪些招聘网站比较好?
java ZXing生成二维码及条码实例分享
Laravel如何实现数据导出到CSV文件_Laravel原生流式输出大数据量CSV【方案】
如何在云主机快速搭建网站站点?
如何用IIS7快速搭建并优化网站站点?
Laravel如何使用Eloquent ORM进行数据库操作?(CRUD示例)
佛山网站制作系统,佛山企业变更地址网上办理步骤?
Laravel定时任务怎么设置_Laravel Crontab调度器配置
详解阿里云nginx服务器多站点的配置
济南网站建设制作公司,室内设计网站一般都有哪些功能?
Laravel怎么做数据加密_Laravel内置Crypt门面的加密与解密功能
PHP怎么接收前端传的文件路径_处理文件路径参数接收方法【汇总】
网站制作企业,网站的banner和导航栏是指什么?
如何在云指建站中生成FTP站点?
HTML5打空格有哪些误区_新手常犯的空格使用错误【技巧】
iOS验证手机号的正则表达式
手机钓鱼网站怎么制作视频,怎样拦截钓鱼网站。怎么办?
Python面向对象测试方法_mock解析【教程】
Python数据仓库与ETL构建实战_Airflow调度流程详解
微博html5版本怎么弄发语音微博_语音录制入口及时长限制操作【教程】
如何用美橙互联一键搭建多站合一网站?
如何在万网自助建站中设置域名及备案?
Laravel怎么配置不同环境的数据库_Laravel本地测试与生产环境动态切换【方法】
Laravel怎么实现模型属性转换Casting_Laravel自动将JSON字段转为数组【技巧】
如何在阿里云购买域名并搭建网站?
Laravel如何实现登录错误次数限制_Laravel自带LoginThrottles限流配置【方法】
HTML 中动态设置元素 name 属性的正确语法详解
如何在腾讯云服务器上快速搭建个人网站?
EditPlus中的正则表达式 实战(2)
网站广告牌制作方法,街上的广告牌,横幅,用PS还是其他软件做的?
Laravel Sail是什么_基于Docker的Laravel本地开发环境Sail入门
网站建设保证美观性,需要考虑的几点问题!
如何在建站宝盒中设置产品搜索功能?
Laravel的契約(Contracts)是什么_深入理解Laravel Contracts与依赖倒置
,怎么在广州志愿者网站注册?
Laravel怎么实现支付功能_Laravel集成支付宝微信支付
Windows11怎样设置电源计划_Windows11电源计划调整攻略【指南】
,南京靠谱的征婚网站?
为什么php本地部署后css不生效_静态资源加载失败修复技巧【技巧】
百度输入法ai面板怎么关 百度输入法ai面板隐藏技巧
Laravel软删除怎么实现_Laravel Eloquent SoftDeletes功能使用教程
php在windows下怎么调试_phpwindows环境调试操作说明【操作】
百度浏览器ai对话怎么关 百度浏览器ai聊天窗口隐藏
如何在建站之星网店版论坛获取技术支持?
Laravel中Service Container是做什么的_Laravel服务容器与依赖注入核心概念解析
实例解析angularjs的filter过滤器
Python文件操作最佳实践_稳定性说明【指导】
Android实现代码画虚线边框背景效果
如何用ChatGPT准备面试 模拟面试问答与职场话术练习教程

