QMUIDialog

提供了一系列常用的对话框,解决了使用系统默认对话框时在不同 Android 版本上的表现不一致的问题。使用不同的 Builder 来构建不同类型的对话框,这些 Builder 都拥有设置 title 和添加底部按钮的功能,不同的 Builder 特有的作用如下:

1.MessageDialogBuilder: 消息类型的对话框 Builder。通过它可以生成一个带标题、文本消息、按钮的对话框。

2.ConfirmMessageDialogBuilder: 带 Checkbox 的消息确认框 Builder。

3.EditTextDialogBuilder: 带输入框的对话框 Builder。

4.MenuDialogBuilder: 菜单对话框 Builder。

5.CheckableDialogBuilder: 单选类型的对话框 Builder。

6.MultiCheckableDialogBuilder: 多选类型的对话框 Builder。

7.CustomDialogBuilder: 自定义对话框内容区域的 Builder。

8.AutoResizeDialogBuilder: 随键盘升降自动调整 Dialog 高度的 Builder

设计模式和Dialog一样,所以用法也没什么差异

消息类型对话框(蓝色按钮)

/**

* 消息类型对话框(蓝色按钮)

*/

private void showMessagePositiveDialog() {

new QMUIDialog.MessageDialogBuilder(context)

.setMessage("标题")

.setTitle("确认要发送吗?")

.addAction("取消", new QMUIDialogAction.ActionListener() {

@Override

public void onClick(QMUIDialog dialog, int index) {

dialog.dismiss();

}

})

.addAction("确认", new QMUIDialogAction.ActionListener() {

@Override

public void onClick(QMUIDialog dialog, int index) {

dialog.dismiss();

}

})

.create(mCurrentDialogStyle).show();

}

}

微信图片_201904011130572.png

菜单类型对话框

/**

* 菜单类型对话框

*/

private void showMenuDialog() {

final String strs []=new String[]{"选项一","选项二","选项三"};

new QMUIDialog.MenuDialogBuilder(context)

.addItems(strs, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(context,"我点第"+"which"+"个",Toast.LENGTH_SHORT).show();

}

}).create(mCurrentDialogStyle).show();

}

微信图片_201904011130571.png

带checkbox的消息确认框

/**

* 带checkbox的消息确认框

*/

private void showConfirmMessageDialog() {

new QMUIDialog.CheckBoxMessageDialogBuilder(context)

.setTitle("退出后是否删除账号信息?")

.setMessage("删除账号信息")

.setChecked(true)

.addAction("取消", new QMUIDialogAction.ActionListener() {

@Override

public void onClick(QMUIDialog dialog, int index) {

}

})

.addAction("退出", new QMUIDialogAction.ActionListener() {

@Override

public void onClick(QMUIDialog dialog, int index) {

}

})

.create(mCurrentDialogStyle)

.show();

}

微信图片_201904011130575.png

单选类型对话框

/**

* 单选菜单

*/

private void showSingleChoiceDialog() {

final String [] strs=new String[]{"选项一","选项二","选项三"};

final int checkIndex=1;

new QMUIDialog.CheckableDialogBuilder(context)

.addItems(strs, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

Toast.makeText(context,"选择一"+"which",Toast.LENGTH_SHORT).show();

}

})

.setCheckedIndex(checkIndex)

.create(mCurrentDialogStyle)

.show();

}

微信图片_201904011130574.png

多选类型对话框

/**

* 多选菜单

*/

private void showMultiChoiceDialog() {

final String items []=new String[]{"选项1","选项2","选项3","选项4","选项5","选项6","选项7","选项8"};

final QMUIDialog.MultiCheckableDialogBuilder builder = new QMUIDialog.MultiCheckableDialogBuilder(context)

.addItems(items, new DialogInterface.OnClickListener() {

@Override

public void onClick(DialogInterface dialog, int which) {

}

})

.setCheckedItems(new int[]{1, 3});

builder.addAction("取消", new QMUIDialogAction.ActionListener() {

@Override

public void onClick(QMUIDialog dialog, int index) {

}

});

builder.addAction("确定", new QMUIDialogAction.ActionListener() {

@Override

public void onClick(QMUIDialog dialog, int index) {

String result="你选择了";

for(int i=0;i

result+=""+builder.getCheckedItemIndexes()[i]+"";

Toast.makeText(context, result, Toast.LENGTH_SHORT).show();

dialog.dismiss();

}

}

});

builder.create(mCurrentDialogStyle).show();

}

微信图片_201904011130573.png

带输入框的对话框

/**

* 带输入框的dialog

*/

private void showEditTextDialog() {

final QMUIDialog.EditTextDialogBuilder builder = new QMUIDialog.EditTextDialogBuilder(context);

builder.setTitle("我是标题");

builder.setPlaceholder("在此输入昵称");

builder.setInputType(InputType.TYPE_CLASS_TEXT);

builder.addAction("取消", new QMUIDialogAction.ActionListener() {

@Override

public void onClick(QMUIDialog dialog, int index) {

}

});

builder.addAction("确定", new QMUIDialogAction.ActionListener() {

@Override

public void onClick(QMUIDialog dialog, int index) {

String inputStr=builder.getEditText().getText().toString();

if(!TextUtils.isEmpty(inputStr)){

Toast.makeText(context,inputStr,Toast.LENGTH_SHORT).show();

dialog.dismiss();

}else{

Toast.makeText(context,"请输入昵称",Toast.LENGTH_SHORT).show();

}

}

});

builder.create(mCurrentDialogStyle).show();

}

微信图片_20190401113057.png

android qmui框架,腾讯QMUI Android框架使用(三)QMUIDialog相关推荐

  1. android rom 评测,腾讯定制Android 4.0 ROM评测 附tati刷机教程

    从Nexus S刷过tita后的截图来看,该ROM的UI界面非常简单,而系统设置界面基本保持了原生界面风格.出乎人意料的是,tita并没有捆绑过多腾讯自己的应用程序(不知是不是测试版的原因). 此外, ...

  2. android 投票功能,腾讯新闻Android客户端更新 加入投票功能

    腾讯近日更新了其应用<腾讯新闻>安卓版,加入了新闻专题,投票两大新功能,同事还优化了用户界面,大家在浏览各类新闻方面又有了新的选择. 新版特点: 1.新闻专题:热门新闻专题呈现,聚合浏览, ...

  3. 腾讯开源android项目管理,腾讯开源的Android UI框架——QMUI Android

    各位同学,早上好,我是你们的老朋友D_clock爱吃葱花,前些天忙着发版本,最近也在看各种各样的新知识,有好多东西想写啊啊啊啊啊.嗯,先冷静捋一下,卖个关子.扯回正题,今天继续为大家推荐一个Githu ...

  4. arr 安卓调用qmui_腾讯QMUI Android框架使用(一)入门及目录

    腾讯QMUI Android框架使用(一)入门及目录 开始使用 qmui 1.引入库 dependencies { implementation 'com.qmuiteam:qmui:1.2.0' } ...

  5. 腾讯Hardcoder Android通讯框架简介

    Hardcoder简介 Hardcoder是腾讯开源的一套Android APP 与系统间的通信解决方案,Hardcoder有效的解决了 APP 只能调用系统标准 API,无法直接调用系统底层硬件资源 ...

  6. Dexposed:Android平台免Root无侵入AOP框架

    本文来自阿里巴巴技术协会(ATA) 本文首发于 http://www.infoq.com/cn/news/2015/07/dexposed 近日,阿里巴巴无线事业部推出首个重量级Android开源项目 ...

  7. 框架模式 MVC 在Android中的使用

    算来学习Android开发已有2年的历史了,在这2年的学习当中,基本掌握了Android的基础知识.越到后面的学习越感觉困难,一来是自认为android没啥可学的了(自认为的,其实还有很多知识科学), ...

  8. android+qq换肤实现,QMUI 换肤 · Tencent/QMUI_Android Wiki · GitHub

    QMUI版本要求: v2.0.0-alpha05+ 官方 Android 10 Dark Mode 适配方案 Android 10 提供了 Dark Mode 适配提供的 API: 提供了 value ...

  9. 【Android 插件化】Hook 插件化框架总结 ( 插件包管理 | Hook Activity 启动流程 | Hook 插件包资源加载 ) ★★★

    Android 插件化系列文章目录 [Android 插件化]插件化简介 ( 组件化与插件化 ) [Android 插件化]插件化原理 ( JVM 内存数据 | 类加载流程 ) [Android 插件 ...

最新文章

  1. mysql backlog_一次优化引发的血案
  2. 【小米校招笔试】给定一些线段,线段有起点和终点,求这些线段的覆盖长度,重复的部分只计算一次
  3. 使用 MSIX 打包 DotNetCore 3.0 客户端程序
  4. SpringBoot2.0基础案例(01):环境搭建和RestFul风格接口
  5. 自动驾驶模拟器Carla之python编程-(1)简介
  6. nvidia显卡驱动,cuda,和cudnn版本
  7. 单片机技术与c语言编程教学大纲,《单片机原理及应用》课程教学大纲
  8. 三网融合方案通过 一台机器打电话看电视上网
  9. TE波TM波和TEM波波阻抗
  10. 电脑如何打开软键盘,教大家Win10如何打开软键盘的方法
  11. 柯洁夺斗地主全国冠军!斗地主可以排解输棋痛苦”
  12. 30天自制操作系统(day10)
  13. 第一次玩switch,需不需要再买一个任天堂Pro手柄
  14. win10下安装Debain Linux子系统
  15. 计算机管理用房设置要求,综合医院建筑规范(放射科用房)
  16. Qt5 实现文件复制并在指定路径下创建文件夹
  17. Java实现数字水印
  18. linux下安装codeblocks及写完程序之后编译成功但无法运行的原因
  19. 旁挂二层组网隧道转发
  20. C语言题目——通讯录(静态存储+动态存储)

热门文章

  1. 浅谈对C#-lock()的理解
  2. NAT基础:NAT技术原理,静态NAT、动态NAT、NAPT、Easy IP、NAT Server的原理,以及各NAT的配置方法和转换示例。
  3. 最新款苹果 iPad 写代码真香,包邮送一个!
  4. CSS 格式化上下文详解
  5. 关于html5的video标签不能播放视频的问题及解决方法
  6. IC设计基础002:RAM的读延时与读数据锁存
  7. 《机器学习》西瓜书读书笔记
  8. 操作系统----磁盘调度(电梯调度算法)
  9. 周杰伦在快手直播焕发第二春
  10. Elasitcsearch基础学习笔记(1)