单击后退按钮时,警告对话框中的 setCancelable(false) 不起作用
setCancelable(false) on Alert dialog does not work, when back button is clicked
我有一个警告对话框,我想让它不可取消,如果用户点击设备上的后退按钮,对话框就会消失。我该如何阻止它这样做。
我已经添加了 setCancelable(false) 但它不起作用。
关于如何解决这个问题的任何想法
这是我的代码。
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
app.bus.post(ScreenDimEvent(false))
val builder = AlertDialog.Builder(activity)
val inflater = activity!!.layoutInflater
@SuppressLint("InflateParams")
val inflatedView = inflater.inflate(R.layout.dialog_quality_control, null)
ButterKnife.bind(this, inflatedView)
builder
.setView(inflatedView)
.setCancelable(false)
.setTitle(getString(R.string.quality_control) + " - " + qualityControlCheck.name)
.setPositiveButton(R.string.fuel_order_signature_dialog_save) { dialog, id ->
validator.validate()
}
presenter.setView(this)
presenter.init(fuelOrderId, qualityControlCheck)
dialog = builder.create()
dialog.setCancelable(false)//TRIED THIS BUT DID NOT WORK
dialog.setCanceledOnTouchOutside(false)
return dialog
}
添加到对话框配置,在builder.create();
之后
dialog.setCancelable(false);
检查此线程的答案:
Prevent back button from closing a dialog box
尤其是这个答案:
alertDialog?.setOnKeyListener { dialog, keyCode, event -> keyCode == KeyEvent.KEYCODE_BACK }
我有一个警告对话框,我想让它不可取消,如果用户点击设备上的后退按钮,对话框就会消失。我该如何阻止它这样做。
我已经添加了 setCancelable(false) 但它不起作用。
关于如何解决这个问题的任何想法
这是我的代码。
override fun onCreateDialog(savedInstanceState: Bundle?): Dialog {
app.bus.post(ScreenDimEvent(false))
val builder = AlertDialog.Builder(activity)
val inflater = activity!!.layoutInflater
@SuppressLint("InflateParams")
val inflatedView = inflater.inflate(R.layout.dialog_quality_control, null)
ButterKnife.bind(this, inflatedView)
builder
.setView(inflatedView)
.setCancelable(false)
.setTitle(getString(R.string.quality_control) + " - " + qualityControlCheck.name)
.setPositiveButton(R.string.fuel_order_signature_dialog_save) { dialog, id ->
validator.validate()
}
presenter.setView(this)
presenter.init(fuelOrderId, qualityControlCheck)
dialog = builder.create()
dialog.setCancelable(false)//TRIED THIS BUT DID NOT WORK
dialog.setCanceledOnTouchOutside(false)
return dialog
}
添加到对话框配置,在builder.create();
dialog.setCancelable(false);
检查此线程的答案:
Prevent back button from closing a dialog box
尤其是这个答案:
alertDialog?.setOnKeyListener { dialog, keyCode, event -> keyCode == KeyEvent.KEYCODE_BACK }