如何使用BottomNavigationBar返回Android中的最后一个片段

如何使用BottomNavigationBar返回Android中的最后一个片段,android,android-fragments,android-jetpack,android-bottomnav,Android,Android Fragments,Android Jetpack,Android Bottomnav,我使用单活动多片段方法和带有导航图的JetPackNavigation。我添加了一个BottomNavigationBar来导航到2个片段,它们可以正常工作。现在我想在底部导航栏中添加一个backbuttom,其意图是如果有人按下它,它应该返回到访问的最后一个片段。我想知道这样的事情是否可行,我是否必须在NavGraph中设置从所有片段到其他片段的连接,以便它可以导航回来?问题是我的导航图相当大,包含很多片段 在这里,您可以看到NavGraph的屏幕截图,其中我在底部导航栏中指出了导航的2个片段

我使用单活动多片段方法和带有导航图的JetPackNavigation。我添加了一个BottomNavigationBar来导航到2个片段,它们可以正常工作。现在我想在底部导航栏中添加一个backbuttom,其意图是如果有人按下它,它应该返回到访问的最后一个片段。我想知道这样的事情是否可行,我是否必须在NavGraph中设置从所有片段到其他片段的连接,以便它可以导航回来?问题是我的导航图相当大,包含很多片段

在这里,您可以看到NavGraph的屏幕截图,其中我在底部导航栏中指出了导航的2个片段(这非常有效)

此外,这里您可以看到底部导航栏的XML代码

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto">


    <item
        android:id="@+id/Back_BottomNavigation"
        android:icon = "@drawable/ic_baseline_arrow_left_24"
        android:title = "Back" />

    <item
        android:id="@+id/FR_LanguageSelection"
        android:icon = "@drawable/ic_add_circle_full"
        android:title = "@string/Language" />

    <item
        android:id="@+id/Fragment1"
        android:icon = "@drawable/ic_add_circle_full"
        android:title = "Fragment1" />





</menu> 
关于如何解决这个问题有什么想法吗?

在BottomNavigationView的OnNavigationItemSelectedListener中设置所需的行为

yourBottomNavigationView.setOnNavigationItemReselectedListener(object : OnNavigationItemSelectedListener{
@override fun onNavigationItemSelected (MenuItem item){
  when(item){
    //insert your condition to match your requirement
  }
}

})

findNavController().navigateUp()呢?谢谢你的回答。我应该在哪里写这个代码?我没有BottomNavigationBar的Java文件(我只是在MainActivity中创建它),因为当您在BottomNavigationBar中指定了目的地时,导航会自动工作。当我将代码从上一个链接复制到我的MainActivity中时,我得到以下错误“lass‘从OnNavigationItemSelectedListener派生的匿名类’必须在‘OnNavigationItemSelectedListener’中声明为抽象或实现抽象方法‘onNavigationItemSelected(MenuItem)’”,因此问题是在何处(在哪个片段或活动中)以及如何实现后退按钮功能。谢谢你的回答。对我最后的评论有什么评论吗?我非常感谢你的进一步评论。@VanessaF对于绑定底部导航视图的实现侦听器,主要是在你的活动中。感谢陈明的回答。我实现了你的建议和后退按钮现在可以工作了。但是:BottomNavigationView中的其他底部不再工作。如前所述,我使用Jetpack导航组件,当使用它们时,BottomNavigationBar在菜单文件中指定正确的名称时“自动”导航。然而,当使用您的方法时,我感觉,这是“自动”的“导航正在被淘汰。所以我的问题是如何将它们结合起来?
yourBottomNavigationView.setOnNavigationItemReselectedListener(object : OnNavigationItemSelectedListener{
@override fun onNavigationItemSelected (MenuItem item){
  when(item){
    //insert your condition to match your requirement
  }
}

})