Search code examples
androidkotlinandroid-viewbindingkotlin-extension

Issue with custom dialog after removing Kotlin extension from the Android project


I have a custom dialog in my android project and it was working fine. After I removed kotlin extension from the project, I have modified my code as follows but there is some issue with the Views in the custom dialog. Codes etTitle.visibility = View.GONE and val newRequest = etDetail.text.toString() didn't work as I expected. It didn't hide the view etTitle and the value in the EditText etDetail is not picked also, it always returns emplty even when there is some value.

private lateinit var bindingDialogLayout: CustomDialogBinding

fun specialRequestDialog(currentRequest: String?) {

        bindingDialogLayout = CustomDialogBinding.inflate(layoutInflater)

        val dialogLayout = layoutInflater.inflate(R.layout.custom_dialog, null)
        val etTitle = bindingDialogLayout.etTitle
        val etDetail = bindingDialogLayout.etDetails

        etTitle.visibility = View.GONE

        etDetail.setText(currentRequest)

        MaterialAlertDialogBuilder(this)
            .setTitle("What is your special request?")
            .setCancelable(false)

            .setPositiveButton("Save") { dialog, which ->

                val newRequest = etDetail.text.toString()

                if (newRequest.isEmpty()) {
                    showErrorSnackBar("Type in if you have any special request, else hit cancel", true)
                } else {

                    addButton.visibility = View.GONE
                    deleteButton.visibility = View.VISIBLE

                }
            }

            .setNegativeButton("Cancel") { dialog, which ->

                dialog?.dismiss()

            }
            .setView(dialogLayout)
            .show()
    }

Solution

  • You set the wrong view to the dialog. Use this instead:

    .setView(bindingDialogLayout.root)