You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Kotlin中以编程方式关闭AlertDialog?

解决AlertDialog调用dismiss()提示未解析引用的问题

问题根源是你把变量声明成了AlertDialog.Builder类型,而dismiss()是AlertDialog实例的专属方法——Builder只是用来配置对话框的构建工具,本身没有关闭对话框的能力,所以直接调用alert.dismiss()会报错。

修正后的代码

// 创建对话框构建器
val alertBuilder: AlertDialog.Builder = AlertDialog.Builder(view.context)
alertBuilder.setTitle(this.notes[position])
alertBuilder.setMessage("choose what you want to do")

var viewOption = inflater!!.inflate(R.layout.item_option, container, false)
alertBuilder.setView(viewOption)

// 构建真正的AlertDialog实例
val alertDialog = alertBuilder.create()

val btn = viewOption.findViewById<Button>(R.id.btnId)
btn.setOnClickListener {
    // 调用实例的dismiss方法关闭对话框
    alertDialog.dismiss()
}

// 最后显示对话框
alertDialog.show()

关键说明

  • 必须通过create()方法生成AlertDialog实例,后续的关闭操作都要基于这个实例
  • 不要直接操作Builder对象,它只负责对话框的初始化配置

内容的提问来源于stack exchange,提问作者Hamza abu-othman

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 22:22:02