App Inventor 2 对话框与通知教程

覆盖:Toast提示、消息对话框、确认对话框、文本输入框、进度条弹窗。

一、Notifier组件方法速查

方法说明有回调
显示警告(消息)Toast提示(底部短暂显示)
显示消息对话框(消息, 标题, 按钮)单按钮弹窗
显示选择对话框(消息, 标题, 按钮1, 按钮2, 可取消)双按钮确认框
显示文本输入对话框(消息, 标题, 取消按钮, 确认按钮, 默认值, 可取消)文本输入弹窗
显示密码输入对话框(消息, 标题, 取消按钮, 确认按钮)密码输入弹窗
显示进度对话框(消息, 标题)加载中弹窗
关闭进度对话框()关闭加载弹窗

二、Toast 提示

// 短暂提示(底部显示,自动消失)
调用 对话框1.显示警告("操作成功!")

// 自定义颜色
设置 对话框1.背景颜色 = 0xFF4CAF50    // 绿色
设置 对话框1.文字颜色 = 白色
设置 对话框1.通知长度 = 1    // 1=短, 2=长
调用 对话框1.显示警告("✅ 保存成功")

三、消息对话框(单按钮)

// 基本用法
调用 对话框1.显示消息对话框("操作完成", "提示", "确定")

// 错误提示
调用 对话框1.显示消息对话框(
  合并字符串("❌ 错误:", 错误信息),
  "错误",
  "我知道了"
)

四、确认对话框(双按钮)

// 显示确认框
当 按钮_删除.被点击 时
  调用 对话框1.显示选择对话框(
    "确定要删除这条记录吗?",
    "删除确认",
    "删除",      // 按钮1(确认)
    "取消",      // 按钮2(取消)
    假           // 是否可点击外部取消
  )

// 处理用户选择
当 对话框1.选择完成后 时(选择)
  如果 选择 = "删除" 则
    调用 执行删除()
  // 选择"取消"则不做任何操作

五、文本输入对话框

// 显示输入框
当 按钮_重命名.被点击 时
  调用 对话框1.显示文本输入对话框(
    "请输入新名称:",
    "重命名",
    "取消",
    "确定",
    当前名称,    // 默认值
    真           // 可取消
  )

// 处理输入结果
当 对话框1.文本输入完成后 时(响应)
  如果 响应 ≠ "" 则
    调用 执行重命名(响应)

// 取消输入
当 对话框1.文本输入取消时
  // 用户点了取消,不做处理

六、密码输入对话框

当 按钮_验证密码.被点击 时
  调用 对话框1.显示密码输入对话框(
    "请输入密码以继续:",
    "身份验证",
    "取消",
    "确认"
  )

当 对话框1.文本输入完成后 时(响应)
  // 验证密码
  如果 响应 = 全局变量 正确密码 则
    调用 执行敏感操作()
  否则
    调用 对话框1.显示警告("密码错误")

七、进度条弹窗(加载中)

// 显示加载中
当 按钮_提交.被点击 时
  调用 对话框1.显示进度对话框("提交中,请稍候...", "处理中")
  调用 Web客户端1.发送POST请求(...)

// 请求完成后关闭
当 Web客户端1.获得文本 时(URL, 响应码, 响应类型, 响应内容)
  调用 对话框1.关闭进度对话框
  
  如果 响应码 = 200 则
    调用 对话框1.显示警告("✅ 提交成功")
  否则
    调用 对话框1.显示消息对话框("提交失败,请重试", "错误", "确定")

八、实战:操作确认流程

// 完整的"删除确认 → 执行 → 反馈"流程
初始化全局变量 待删除ID = ""

当 按钮_删除.被点击 时
  设置 全局变量 待删除ID = 当前选中ID
  调用 对话框1.显示选择对话框(
    合并字符串("确定删除「", 当前选中名称, "」?\n此操作不可撤销!"),
    "⚠️ 删除确认",
    "确定删除",
    "取消",

  )

当 对话框1.选择完成后 时(选择)
  如果 选择 = "确定删除" 则
    调用 对话框1.显示进度对话框("删除中...", "请稍候")
    调用 Web客户端1.发送DELETE请求(
      合并字符串("https://api.example.com/items/", 全局变量 待删除ID)
    )

当 Web客户端1.获得文本 时(URL, 响应码, 响应类型, 响应内容)
  调用 对话框1.关闭进度对话框
  如果 响应码 = 200 则
    调用 对话框1.显示警告("✅ 删除成功")
    调用 刷新列表()
  否则
    调用 对话框1.显示消息对话框("删除失败", "错误", "确定")

九、常见问题

Q1:Toast显示位置能改吗?

App Inventor 2 的Toast固定在底部,无法修改位置。如需自定义位置,用标签组件模拟。

Q2:对话框能自定义样式吗?

可以设置 背景颜色文字颜色,但布局无法深度自定义。复杂UI用WebView实现。

Q3:如何实现多步骤确认?

用全局变量记录当前步骤,在 选择完成后 事件中判断步骤并显示下一个对话框。

参考资料


文档版本:2026.03 | 作者:App Inventor 2 中文网 www.fun123.cn

参考资料与版权声明

原文来源

版权声明

本文档基于 MIT App Inventor 官方文档及社区资源整理,版权归原作者所有:
  • MIT App Inventor 官方文档采用 CC BY-SA 4.0 授权
  • MIT App Inventor Community 帖子版权归原作者所有
本文档由 ai2claw 🐝 整理,仅供学习参考,如有侵权请联系删除。