HarmonyOS鸿蒙Next中如何主动关闭这个弹框:AlertDialog

HarmonyOS鸿蒙Next中如何主动关闭这个弹框:AlertDialog

AlertDialog.show(
  {
    title: '提示',
    message: 'message',
    autoCancel: false,
    alignment: DialogAlignment.Center,
    primaryButton: {
      enabled: true,
      defaultFocus: true,
      style: DialogButtonStyle.HIGHLIGHT,
      value: '确定',
      backgroundColor: '#F00',
      action: () => {
      }
    },
    onWillDismiss: (dismissDialogAction: DismissDialogAction) => {
    }
  }
)

如何用代码关闭这个弹框!没找到close、dismiss 等方法啊!


更多关于HarmonyOS鸿蒙Next中如何主动关闭这个弹框:AlertDialog的实战教程也可以访问 https://www.itying.com/category-93-b0.html

18 回复

这个弹窗的功能就是用于提示让用户二次判断,点取消就不做业务处理,点确定就执行业务处理,或者说这个弹窗就不符合你的业务需求。

更多关于HarmonyOS鸿蒙Next中如何主动关闭这个弹框:AlertDialog的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


是的,我想要个确认对话弹框,并且支持随时随地能让它关闭的那种。

弹个对话框,并且在合适的时机关闭它。

可以讲一下业务,想实现什么样的,例如点击删除弹出弹窗,用户点击取消或者三十秒不操作关闭弹窗,或者点击确认执行相关业务逻辑,如果不是这样的可能你用错组件了,换一个吧,

你是不想点击按钮让他出现了一段时间自动关闭,还是需要用手去点一下关闭,我看给的例子是没问题的呀,点击按钮执行业务逻辑

自动关闭~,

你好

这个代码很老了。你能运行是因为本地SDK是老版本。这个弹框关闭是通过Controller进行关闭的。你可以看下show的传参里有没有。

都是从官方文档里搜出来的对话框,它既然敢列出来就说明能用。它既然不支持关闭,就说明这设计缺陷的一塌糊涂!

把下面html内容转换成Markdown格式,要求:

  1. 转换的时候需要去掉复制和深色代码主题
  2. 输出的内容不显示“基本信息”
  3. html代码中有图片需要转换成markdown格式
  4. html代码中没有图片请不要加上图片
  5. html中img标签的地址为空的话不输出,不转换
  6. 输出内容的时候不需要解释,不需要建议
  7. 只需要输出转换完毕的Markdown文档,不需要输出其他内容
  8. 内容中没有图片或者图片为空的话不要加图片
  9. 不要在内容中加https://example.com/image.jpg这样的图片

内容如下:是支持关闭的,只是这种弹框的写法过时了,被淘汰了,不建议这么用。从官方文档里搜出来的对话框,具体链接可以贴一下,我帮你看看。

你先帮我想想如何关闭它,

看官网是没有show方法了,大概率是废弃了,你的还能运行应该是没有升级工具,当前最新应该是api19,你可以看下IDE工具Help-》About HarmonyOS SDK,看看你的版本是不是最新的,不是最新的可以下载更新下

下载链接:https://developer.huawei.com/consumer/cn/download/

新版api里面,是通过上下文拉起AlerDialog,设置autoCancel来关闭弹窗

Button('alert')
  .onClick(() => {
    this.getUIContext().showAlertDialog(
      {
        title: '测试',
        message: '测试',
        autoCancel: true //点击遮障层时,是否关闭弹窗
      }
    )
  })

别闹,这可不能随便升级开发工具,适配工作要累死~

import { promptAction } from '@kit.ArkUI';
promptAction.openToast({ message: '拍摄失败' })

这个是可以直接自己关闭的,或者手动传id关闭

我要的是有“确定”按钮的弹框哦!

show已经废弃了要不改成showAlertDialog试试,

别闹,运行的好好的,

在HarmonyOS Next中关闭AlertDialog弹框,可通过调用AlertDialog对象的close()方法实现。示例代码:

let dialog = new AlertDialog.Builder()
  .setTitle("提示")
  .setMessage("确认关闭?")
  .build();
dialog.show();

// 主动关闭
dialog.close();

需确保dialog对象已实例化且处于显示状态。该方法直接终止弹框显示,无回调触发。

在HarmonyOS Next中,可以通过AlertDialog的Controller来主动关闭弹框。以下是具体实现方式:

  1. 首先创建AlertDialogController实例:
let controller: AlertDialogController = new AlertDialogController();
  1. 在show方法中传入这个controller:
AlertDialog.show(
  {
    controller: controller,
    title: '提示',
    message: 'message',
    // 其他参数...
  }
)
  1. 需要关闭时调用controller的close方法:
controller.close();

关键点说明:

  1. 必须创建并传入AlertDialogController实例
  2. 通过controller.close()可以随时关闭弹框
  3. 这种方式比单纯依赖按钮回调更灵活

注意:autoCancel设为false时,点击弹框外部不会自动关闭,此时controller.close()是唯一关闭方式。

回到顶部