我正在try 阻止自动取消siteListFragment.kt中Else语句中的对话,但尽管我进行了努力,对话框还是自动取消了.
以下是我的代码: SiteListFragment.kt
override fun showAddSiteDialog() {
val view: View = LayoutInflater.from(context).inflate(R.layout.dialog_site_add, null)
DialogService.showWithView(
requireContext(),
DialogService.DialogType.INFO,
false,
getString(R.string.add_site),
view,
null,
DialogService.TextWithCallback(getString(R.string.dialog_negative_cancel)){
DialogService.dismiss()
},
DialogService.TextWithCallback(getString(R.string.dialog_positive_add)){
GlobalScope.launch {
val editText = view.findViewById<EditText>(R.id.site_name_add)
val enteredText = editText.text.toString()
withContext(Dispatchers.Main) {
if (siteListPresenter.addSite(enteredText)) {
DialogService.dismiss()
}
//here
else {
editText.error = getString(R.string.network_update_error_empty_name_message)
}
}
}
}
)
}
DialogService.kt
private var dialog: AlertDialog? = null
var builder: AlertDialog.Builder? = null
private fun create(
context: Context,
dialogType: DialogType,
cancelable: Boolean,
title: String,
message: String?
) {
builder = AlertDialog.Builder(context, R.style.CreativePodDialog)
dialog = builder!!.create()
builder!!.apply {
setTitle(title)
setIcon(getIcon(dialogType))
if (message != null && message != "") setMessage(message)
setCancelable(cancelable)
}
}
fun showWithView(
context: Context,
dialogType: DialogType,
cancelable: Boolean,
title: String,
view: View? = null,
negativeButton: TextWithCallback?,
neutralButton: TextWithCallback?,
positiveButton: TextWithCallback?,
) {
create(context, dialogType, cancelable, title, null)
builder!!.apply {
setView(view)
if (positiveButton != null)
setPositiveButton(positiveButton.text) { _, _ ->
positiveButton.callback.invoke()
}
if (negativeButton != null)
setNegativeButton(negativeButton.text) { _, _ ->
negativeButton.callback.invoke()
}
if (neutralButton != null)
setNeutralButton(neutralButton.text) { _, _ ->
neutralButton.callback.invoke()
}
}.show()
}
我已经try 将对话框设置为不可取消,这允许您在对话框外按下,但不会使其关闭,但不会影响按钮.我还try 将对话框肯定按钮回调设置为NULL,默认设置为Dismising.任何帮助都将不胜感激.