Handling back button in Android Navigation Component

前端 未结 23 1372
遥遥无期
遥遥无期 2020-11-29 18:20

I\'d like to know how properly handle system back button action using Navigation Controller. In my app I have two fragments (for ex. fragment1 and fragment2) and I have an a

23条回答
  •  星月不相逢
    2020-11-29 19:15

    Try this. I think this will help you.

    override fun onBackPressed() {
        when (mNavController.getCurrentDestination()!!.getId()) {
    
            R.id.loginFragment -> {
                onWarningAlertDialog(this, "Alert", "Do you want to close this application ?")
            }
            R.id.registerFragment -> {
                super.onBackPressed()
            }
        }
    }
    
    
    
    private fun onWarningAlertDialog(mainActivity: MainActivity, s: String, s1: String) {
    
            val dialogBuilder = AlertDialog.Builder(this)
            dialogBuilder.setMessage(/*""*/s1)
                    .setCancelable(false)
                    .setPositiveButton("Proceed", DialogInterface.OnClickListener { dialog, id ->
                        finish()
                    })
                    .setNegativeButton("Cancel", DialogInterface.OnClickListener { dialog, id ->
                        dialog.cancel()
                    })
    
            // create dialog box
            val alert = dialogBuilder.create()
            // set title for alert dialog box
            alert.setTitle("AlertDialogExample")
            // show alert dialog
            alert.show()
        }
    

提交回复
热议问题