setCancelable (false) в диалоговом окне Alert не работает при нажатии кнопки «Назад» - PullRequest
0 голосов
/ 12 марта 2020

У меня есть диалоговое окно с предупреждением, которое я хочу сделать не подлежащим отмене, если пользователь нажимает кнопку «Назад» на устройстве, диалог исчезает. как мне это остановить.

Я добавил 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
}

Ответы [ 2 ]

1 голос
/ 12 марта 2020

Проверить ответы из этой темы:

Запретить кнопке возврата закрывать диалоговое окно

Специально для этого ответа: { ссылка }

alertDialog?.setOnKeyListener { dialog, keyCode, event -> keyCode == KeyEvent.KEYCODE_BACK }
0 голосов
/ 12 марта 2020

Добавить в конфигурацию диалога, после builder.create();

dialog.setCancelable(false);
...