how to handle back pressed in Kotlin

后端 未结 2 1639
抹茶落季
抹茶落季 2021-01-19 07:06

my app having only two base activity and several fragment,, i want to display an Exit alert when user reach particular base fragment by clicking back press

o         


        
相关标签:
2条回答
  • 2021-01-19 07:32

    At first Check Visible Fragment

    val currentFragment =this@ActivityName.supportFragmentManager.findFragmentById(R.id.Your_id)
            if(currentFragment is FragmentName)
            {
             // AlertDialog()
            }
    

    Finally

    override fun onBackPressed() 
    {
            if (drawer_layout.isDrawerOpen(GravityCompat.START)) {
              drawer_layout.closeDrawer(GravityCompat.START)
    
            } else 
            {
    
                val currentFragment =this@ActivityName.supportFragmentManager.findFragmentById(R.id.Your_id)
                if(currentFragment is SpecificFragmentName)
                {
                   AlertDialog.Builder(this@ActivityName)
                        .setTitle("Exit Alert")
                        .setMessage("Do You Want To Exit Petals App?")
                        .setPositiveButton(android.R.string.ok) { dialog, whichButton ->
                            super.onBackPressed()
                        }
                        .setNegativeButton(android.R.string.cancel) { dialog, whichButton ->
    
                        }
                        .show()
                }
                else{
                super.onBackPressed()
                }
    
    
        }
    }
    
    0 讨论(0)
  • 2021-01-19 07:51

    You can just:

        val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {
            // Handle the back button event
        }
    

    For more information you can check this.

    0 讨论(0)
提交回复
热议问题