Not working onbackpressed when setcancelable of alertdialog is false

后端 未结 5 1141
名媛妹妹
名媛妹妹 2020-12-06 18:02

I have an AlertDialog and its setCancelable() is false. In Onbackpressed function I want the AlertDialog to be closed. But when setCancelable

5条回答
  •  渐次进展
    2020-12-06 18:32

    just add a onKeyListener and cancel dialog on back key event.

        lateinit var dialog: AlertDialog
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_main)
            dialog = AlertDialog.Builder(this).setMessage("Check your internet connection")
                    .setPositiveButton("OK") { _, _ ->
                        Toast.makeText(this, "OK", Toast.LENGTH_LONG).show()
                    }.setCancelable(false)
                    .create()
            dialog.show()
    
            dialog.setOnKeyListener { _, keyCode, _ ->
                if(keyCode == KeyEvent.KEYCODE_BACK) {
                    if(dialog.isShowing) {
                        dialog.dismiss()
                    }
                }
                true
            }
        }
    

提交回复
热议问题