如何关闭背面按下的片段的活动?

问题描述 投票:0回答:1

我的MainActivity在启动时打开SignInFragment,身份验证成功后登录打开MainFragment。如何在按下后从这两个片段中关闭 MainActivity?当我尝试将回按回调添加到所需的片段中时,它会关闭每个片段的 MainActivity,而不是仅关闭那个片段。我也不能使用 popBackStack,因为 Activity 不在 BackStack 中。是否有正确的解决方案可以在按下背面时从所需的片段中关闭活动?

android kotlin android-studio
1个回答
0
投票

有几种方法可以在按下 onBack 时关闭 Activity,因为您与 Fragment 更相关。首先创建一个名为OnBackPressed的接口,该接口包含函数onBackPressed(任何你喜欢的名称)。在片段中实现接口,因为它的函数 onBackPressed 将在那里定义,所以将 activity?.onFinish() 放在函数体中。

首先,在 MainActivity 中,您重写 onBackPress 函数,然后进行检查(if 条件)。

override fun onBackPressed(){
// get the currentFragment
val currentFragment = supportFragmentManager.findFragmentById(R.id.fragmentID)
if(currentFragment is OnBackPressedListener){
  currentFragment.onBackPressed()
 } else {
    super.onBackPressed().
 }
}

这是在片段中点击后退按钮时关闭活动的方法之一。

© www.soinside.com 2019 - 2024. All rights reserved.