如何使用Android中的导航控制器定制返回按钮返回特定目的地?

如何使用Android中的导航控制器定制返回按钮返回特定目的地?,android,kotlin,android-architecture-components,android-jetpack,android-architecture-navigation,Android,Kotlin,Android Architecture Components,Android Jetpack,Android Architecture Navigation,我需要做一个自定义行为,当用户按下后退按钮时,用户将以编程方式前往某个目的地。我确实读过这个 但我不明白如何使用自定义的后退按钮代码。我觉得这很奇怪 我试过使用下面的代码 override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { fragmentView = infla

我需要做一个自定义行为,当用户按下后退按钮时,用户将以编程方式前往某个目的地。我确实读过这个

但我不明白如何使用自定义的后退按钮代码。我觉得这很奇怪

我试过使用下面的代码

override fun onCreateView(
        inflater: LayoutInflater, container: ViewGroup?,
        savedInstanceState: Bundle?
    ): View? {

        fragmentView = inflater.inflate(R.layout.fragment_search_setting, container, false)

        // set custom back button
        val callback = requireActivity().onBackPressedDispatcher.addCallback(this) {

            // navigate to certain destination
            Navigation.findNavController(fragmentView).popBackStack(R.id.destination_create_event, false)


        }


        return fragmentView
    }
但我得到了这样的类型不匹配错误

必须创建OnBackPressedCallback抽象类的新实例并实现其抽象方法

我希望这能帮助你:

        val callback = requireActivity().onBackPressedDispatcher.addCallback(object : OnBackPressedCallback(true){
        override fun handleOnBackPressed() {
                        Navigation.findNavController(fragmentView).popBackStack(R.id.destination_create_event, false)
        }


    })

    // The callback can be enabled or disabled here or in the lambda

}

这不是OP的要求。《老年退休金计划守则》很好;我认为它使用了错误的导入。@MartinMarconcini,正如您在屏幕截图中看到的,类型不匹配错误eccurs,错误消息说需要OnBackPressedCallback,但找到了boolean@ahooee我试过你的解决办法,但是我有这样的错误@Alexa289只需在“return fragmentView”语句之前添加结束addCallback函数括号。请参见屏幕截图: