HarmonyOS NEXT鸿蒙开发:AlertDialog 警告弹窗、确认弹窗

介绍

AlertDialog 是一个重要的模态弹窗组件,主要用于 临时中断用户操作,展示关键信息 或请求用户输入

关闭对话框后会自动销毁,无需手动释放资源。

应用场景

  • 必须用户主动关闭:与 Popup 不同,AlertDialog 需用户点击按钮交互后才能关闭。
  • 防止误操作:通过强制用户确认,避免因误触导致的不可逆操作。

方法

通过 AlertDialog.show() 静态方法显示对话框

static show(
    value:
        AlertDialogParamWithConfirm |
        AlertDialogParamWithButtons |
        AlertDialogParamWithOptions
)

参数解释:

  • value:可以是下面类型:
    • AlertDialogParamWithConfirm
    • AlertDialogParamWithButtons
    • AlertDialogParamWithOptions

AlertDialogParam 通用属性

定义通用属性,子类是:

  • AlertDialogParamWithConfirm
  • AlertDialogParamWithButtons
  • AlertDialogParamWithOptions

通用属性

  • title:ResourceStr类型,非必填,弹窗标题

  • subtitle:ResourceStr类型,非必填,弹窗副标题

  • message:ResourceStr类型,必填,弹窗内容

  • autoCancel:boolean类型,非必填,点击遮障层时,是否关闭弹窗,true表示关闭弹窗。false表示不关闭弹窗。默认值:true

  • cancel:() => void,非必填,点击遮障层关闭dialog时的回调。

AlertDialogParamWithConfirm

实现警告弹窗

属性

继承 AlertDialogParam 通用属性,还有下面属性:

  • confirm:

    {
    value: ResourceStr, //Button文本内容
    
    action: () => void // 点击 Button时的回调函数
    }
    

例子

Button("提示对话框")
  .onClick(() => {
    // 显示对话框
    AlertDialog.show({
      title: "警告", // 标题
      message: "连接蓝牙失败!", // 内容
      confirm: {
        value: "确定",
        action: () => {
          console.log("点击取消按钮");
        }
      },
    });
  })

显示如下:

AlertDialogParamWithButtons

实现确认对话框

继承 AlertDialogParam 通用属性,还有下面属性:

  • primaryButton:定义左数第1个按钮

    {
    value: ResourceStr, //Button文本内容
    
    action: () => void // 点击 Button时的回调函数
    }
    
  • secondaryButton:定义左数第2个按钮

    {
    value: ResourceStr, //Button文本内容
    
    action: () => void // 点击 Button时的回调函数
    }
    

例子

Button("确定对话框")
  .onClick(() => {
    // 显示对话框
    AlertDialog.show({
      title: "提示", // 标题
      message: "确定删除该记录吗?", // 内容
      primaryButton: {
        value: "取消",
        action: () => {
          console.log("点击取消按钮");
        }
      },
      secondaryButton: {
        value: "确定",
        action: () => {
          console.log("点击确定按钮");
        }
      }
    });
  })

显示如下:


原文出处:/show_1GW1y4gZTNR1.html