如何在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
相关产品推荐
相关产品推荐

