首页 > 解决方案 > 如何在扩展 AlertDialog 时修复“必须在添加内容之前调用 requestFeature()”

问题描述

我正在尝试创建我的自定义 AlertDialog,并获得“在添加内容之前必须调用 requestFeature()”的异常

有没有人可以帮帮我???

自定义警报对话框:

class CustomConfirmDialog(
    internal var context: Context,
    // val title: String,
    val msg: String,
    val listener: OnConfirmListener
) : AlertDialog(context) {
    interface OnConfirmListener {
        fun onConfirmClick()
        fun onCancelClick()
    }

    override fun onCreate(savedInstanceState: Bundle?) {
        requestWindowFeature(Window.FEATURE_NO_TITLE)
        super.onCreate(savedInstanceState)
        setContentView(R.layout.confirm_dialog)

        // tvDialogTitle.text = title
        tvDialogMsg.text = msg

        btnCancel.setOnClickListener {
            listener.onCancelClick()
            if (isShowing)
                dismiss()
        }

        btnOK.setOnClickListener {
            listener.onConfirmClick()
            if (isShowing)
                dismiss()
        }
    }

    fun setButtonText(strConfirm: String, strCancel: String) {
        btnOK?.text = strConfirm
        btnCancel?.text = strCancel
    }
}

这是调用代码

private fun stopAcc() {
    val msg = ResUtils.getStringFromRes(R.string.acc_stop_acc_prompt_msg)
    CustomConfirmDialog(activity!!, msg, listener).apply {
        setButtonText("stopAcc", "startGame")
        setCancelable(false)
        show()
    }
}

标签: androidexceptionkotlinandroid-alertdialog

解决方案


推荐阅读