Android 覆盖 onBackPressed()

新手上路,请多包涵

是否可以仅针对一项活动覆盖 onBackPressed()

在后退按钮上单击我想调用特定活动的对话框,但在所有其他活动中我希望它像以前一样工作(转到以前的活动)。

已编辑

谢谢大家的回答,我已经拥有了你告诉我的一切,但我的问题是,当我在另一个活动上单击后退按钮时,我要去我以前的活动(我有后退按钮被覆盖的那个),我以为它不起作用,我认为它在整个应用程序中覆盖了 onBackPressed() ,现在我明白了。

原文由 Jilberta 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.4k
2 个回答

是的。只用 Activity 覆盖它

@Override
public void onBackPressed()
{
     // code here to show dialog
     super.onBackPressed();  // optional depending on your needs
}

不要将此代码放在任何其他 Activity

原文由 codeMagic 发布,翻译遵循 CC BY-SA 3.0 许可协议

OnBackPressed 已弃用。

Kotlin 解决方案在这里:

 onBackPressedDispatcher.addCallback(object: OnBackPressedCallback(true) {
            /* override back pressing */
            override fun handleOnBackPressed() {
                //Your code here
            }
        })

原文由 Rowan Berry 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题