【问题标题】:How to handle AlertDialog close event?如何处理 AlertDialog 关闭事件?
【发布时间】:2014-01-29 17:19:00
【问题描述】:

当使用 touch outside 事件关闭 AlertDialog 时是否有回调?我启用了“setCanceledOnTouchOutside(true)”。我想在使用 touch outside 事件关闭 AlertDialog 后设置特定视图的可见性。有什么想法吗?

如果有帮助,我将在 Fragment 中使用 AlertDialog.Builder()。

【问题讨论】:

标签: android android-fragments android-alertdialog


【解决方案1】:

OnDismissListener 似乎最合适,但它需要相对较高的 API 级别,因此您可能需要坚持使用 OnCancelListener

【讨论】:

  • 谢谢,我正在查看 AlertDialog 文档。这真的很快。
  • AlertDialog.Builder.setOnDismissListener() 是 API 级别 17,但 Dialog.setOnDismissListener() 是 API 级别 1,效果相同。
【解决方案2】:

我发布 Kotlin 版本是因为我今天正在寻找它并且我很难

val builder = AlertDialog.Builder(requireContext())

builder.setTitle("title")
builder.setMessage("message")

builder.setOnCancelListener {  func->Log.i("meh","meh") }

【讨论】:

    【解决方案3】:

    如果您在自定义对话框类中,并且希望捕获“在对话框外单击”事件 - 覆盖 cancel()。如果您希望捕获任何“对话框关闭”事件 - 覆盖dismiss()。 我建议在 super.dismiss() 之前插入逻辑。 Kotlin 示例:

    override fun dismiss() {
        Utils.hideKeyboard(mContext, window)
        super.dismiss()
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多