自学鸿蒙应用开发(25)- 基本的CommonDialog

article/2025/8/27 19:35:51

动作演示

对话框是应用程序的主要输入手段之一,但是遗憾的是目前鸿蒙的开发网站上只有ToastDialog用法,其他类型的对话框则只能参考为数不多的英文文档。

以下是作者经过不断尝试,终于鼓捣出来的CommonDialog对话框。

CommonDialog1

代码实现

生成基本的CommonDialog的代码并不复杂:构建对话框对象之后分别设定图标,标题,副标题和显示信息之后设定OK按钮即可。

private void showStdCommon(){    CommonDialog dlg = new CommonDialog(this);    dlg.setContentImage(ResourceTable.Media_icon);    dlg.setTitleText("CommonDialog");    dlg.setTitleSubText("Standard Demo");    dlg.setContentText("This is a CommonDialog Test!");    dlg.setButton(1, "OK", new IDialog.ClickedListener() {        @Override        public void onClick(IDialog iDialog, int i) {            dlg.destroy();        }    });}

CommonDialog一共支持三个按钮,开发者可以为每个按钮指定表示文字和处理代码。本文中的OK按钮只是简单的关闭CommonDialog。

图片

从上图可以看出,生成的对话框布局占满整个屏幕宽度,形式又非常简陋,这个状态是无法将其运用到实际的商品级应用开发的。

下一篇文章我们解决这个问题。

参考资料

ToastDialog用法说明网页

https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ui-java-component-toastdialog-0000001060125963

ToastDialog类

https://developer.harmonyos.com/cn/docs/documentation/doc-references/toastdialog-0000001054440045

CommonDialog类

https://developer.harmonyos.com/cn/docs/documentation/doc-references/commondialog-0000001054678727

作者著作介绍

《实战Python设计模式》是作者去年3月份出版的技术书籍,该书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

图片

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。


觉得本文有帮助?请分享给更多人。

关注微信公众号【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!

图片


http://chatgpt.dhexx.cn/article/CWM71MTq.shtml

相关文章

Builder设计模式构建通用型Dialog

目录 写在前面 一、什么是Builder模式 二、AlertDialog源码分析 2.1、源码阅读 2.2、Builder模式工作流程 三、代码实战——Builder模式构建通用型Dialog 3.1、基本框架搭建 3.2、完善Builder 3.3、完善真正的构建器 3.4、自定义参数配置 四、使用Dialog 写在前面 …

自学鸿蒙应用开发(26)- 自定义CommonDialog

执行效果 上一篇文章中说过,直接使用鸿蒙系统中的CommonDialog大致是下面的效果: 这个效果实在是无法用于实际的应用开发。本文介绍如何定制自己的CommonDialog。还是先看演示视频: CustomizeCommonDialog 准备布局 定制CommonDialog的第一…

Android炫酷翻转Dialog及高仿苹果IOS的Dialog

简单的Android弹出Dialog效果(圆角) 最近一段时间工作挺忙的,一直想写一篇博文,总是被各种事情打破计划,终于这次利用这个周末来开始自己第一次的技术文章的写作,提前说明,本人还是个菜鸟&#…

Android 全局Dialog

前沿 android 弹窗好几种,全局弹窗是什么?和普通Dialog(必须依附activity上下文的弹窗)有什么区别? 逛技术blog发现【全局dialog】这个名词,之前用FragmentDialog,自定义dialog。以及dialog的…

Android开发dialog内存泄露,Android中导致内存泄漏的竟然是它----Dialog

一. 内存泄漏的 Bug 猛增 最近在 App 进行 mokey 测试的时候检测到一些内存泄漏问题。在前天的测试中,楼主一瞬间收到了4个这样的 Bug 单,瞬间心理无比纠结,真有千万只羊驼向我奔来。 登录页面出现内存泄漏??!!楼主的代码是如此的***而无懈可击,这么可能出现这么多泄漏的…

dialog.setOnDismissListener(null)过程分析

前提 为解决DialogFragment的内存泄漏,使用了此篇博客的处理方法 DialogFragment 内存泄露,简单说就是给 dialog 设置 getDialog().setOnCancelListener(null); getDialog().setOnDismissListener(null);但发现了一个问题,当用户返回Activi…

深入分析Android中Dialog

在Android中,Dialog是一个非常重要的UI, 它可以方便的给用户提示,用最简洁的方式向用户展示信息, 以下的图片是Dialog的一个整体架构,通过它,可以总体对Dialog有一个很清晰的认识. 从这张图中可以看到,Dialog为父类, 其下有最重要的&#xf…

android自定义dialog去除title,Android 自定义Dialog去除title导航栏的解决方法

Android 自定义Dialog去除title导航栏的解决方法 如下所示: Dialog dialog = new Dialog(context); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(view); 以上这篇Android 自定义Dialog去除title导航栏的解决方法就是小编分享给大家的全部内…

android常见的dialog的使用及认识

介绍 在实际开发过程中 , 我们难免要经常使用提示框 (dialog), 根据不同的场景使用不同的样式的提示框(dialog). androd提供了丰富的dialog函数 , 本文将介绍在实际开发中经常使用的对话框, 包括普通对话框 , 列表对话框 , 单选对话框 , 多选对话框 , 等待对话框, 进度条对话框…

ABAP屏幕设计Dialog

目录 一、概览 1.屏幕 2.程序组织 3.屏幕定义和维护 用途: 组成: Dialog的屏幕执行过程: 属性: 创建: 4.屏幕属性的动态修改 5.屏幕序列 二、Screen编程实例 1.Hello World屏幕编程 建立程序: 设计…

Android Dialog 源码研究

Android Dialog 源码研究 在阅读Dialog源代码之前,我给自己提出了4个问题,带着这4个问题的疑问,我才开始看源码,这样的好处能让阅读中有了侧重点,往往能更快的理解某些代码的意图,这也正是为什么总说提出问题本身,要比解决问题困难。 我下面要思考的4个问题是: Dialo…

android 判断dialog,Android 7.0经验谈:Dialog不显示之迷

最近遇到个怪问题,在其他手机上都能正常的显示Dialog,但是在Android 7.0的手机上只能显示Dialog的半透明背景,无法显示Dialog的内容。 用图给大家展示一个遇到的现象,正常时应该是这个样子的: 而我们遇到的情况如下,更坏的是如果我们设置Dialog不能点击空白处取消(dismis…

Android窗口设计之Dialog、PopupWindow、系统窗口的实现

窗口设计之Dialog、PopupWindow、系统窗口的实现 Android应用程序窗口设计系列博客: Android应用程序窗口设计之Window及WindowManager的创建 Android应用程序窗口设计之setContentView布局加载的实现 普法Android的Token前世今生以及在APP,AMS,WMS之间传递 Android应用程序窗口…

理解Android中Dialog

文章收藏的好句子:你能走多远、爬多高,不仅取决于你自身的力量,还取决于周围人带动的力量。 PS:本文是基于 Android Api 26 来分析源码的。 1、Dialog 的 Window 是在哪里创建的? Dialog 的 Window 是在什么地方创建的…

Android之Dialog分析

Android之Dialog分析 以Dialog为引导,Android的弹出式消息一共是三种(据我所知):Dialog,tocast,notification 其三种弹出式消息各有所长。今天重点是分析其中的Dialog。Android的Dialog是android界面编程的…

Android开发dialog内存泄露,Dialog引发的内存泄漏

8种机械键盘轴体对比 本人程序员,要买一个写代码的键盘,请问红轴和茶轴怎么选? 本文是本人对于 LeakCanary 团队的一篇分析内存泄漏的文章的意译。水平有限,如有不够准确之处,敬请包涵。 主旨:在Lollipop之前的版本,Dialog可能导致内存泄漏。 引言 LeakCanary 提示存在内…

android源码分析-Dialog

今天给大家介绍android -Dialog源码分析 Dialog 是所有对话框的基类,例如AlertDialog,我们要深入了解指导Dialog的用法,逻辑,必须要把Dilaog弄清楚,下面首先我们来看下Google对Dialog的类描述:/**Base clas…

Dialog源码分析

1, 概述 Dialog(对话框)不仅可以显示信息,还可以和Activity界面进行交互,这种交互是阻塞式的. 继承Dialog的类有好几种,主要以AlertDialog为例来分析一下具体的原理。 2 实现 Dialog依附于Activity来实现,一般在acitivty中显示,因为Dialog的交互是阻塞式的,所以最好另开一线…

爬虫为什么会使用到HTTP代理?

在进行网页爬虫的时候使用HTTP代理,可以进行匿名抓取网页信息,爬取大数据等使用方向。HTTP代理我们很了解,但是你有了解过HTTP协议是什么吗? HTTP协议即超文本传输协议,是Internet上信息传输时使用最为广泛的一种简单…

爬虫笔记——全局代理下的requests写法

当PC挂了全局代理的时候,如果你的requests还像下面写的话,大概率会报错: 正确的写法是: