从 Android 项目中删除 Kotlin 扩展后自定义对话框出现问题
Issue with custom dialog after removing Kotlin extension from the Android project
我的 android 项目中有一个自定义对话框,它工作正常。从项目中删除 kotlin extension
后,我按如下方式修改了代码,但自定义对话框中的视图存在一些问题。代码 etTitle.visibility = View.GONE
和 val newRequest = etDetail.text.toString()
没有像我预期的那样工作。它没有隐藏视图 etTitle
并且 EditText
etDetail
中的值也没有被选中,它总是 returns emplty 即使有一些值。
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()
}
您为对话框设置了错误的视图。
改用这个:
.setView(bindingDialogLayout.root)
我的 android 项目中有一个自定义对话框,它工作正常。从项目中删除 kotlin extension
后,我按如下方式修改了代码,但自定义对话框中的视图存在一些问题。代码 etTitle.visibility = View.GONE
和 val newRequest = etDetail.text.toString()
没有像我预期的那样工作。它没有隐藏视图 etTitle
并且 EditText
etDetail
中的值也没有被选中,它总是 returns emplty 即使有一些值。
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()
}
您为对话框设置了错误的视图。 改用这个:
.setView(bindingDialogLayout.root)