我有主要 Activity 。有 4 个选项卡 (TabHost
)。我已经覆盖了 MainActvity 中的 onBackPress()
以及所有 4 个 Activity 。此按钮向用户显示一个对话框并用于确认退出
应用程序启动时。它显示第一个选项卡。然后,如果我按回它工作正常。但是,如果我转到下一个 3 个选项卡,然后按返回键,该应用程序将停止。调用 Main 的 OnDestroy()
。但是用户没有对话。甚至注意到在日志猫中打印。我在 onBackPressed()
方法中编写了 From 和 5 个 Activity ,包括 MainActivity
。
我也试过 onKeyDown()
返回键,但结果是一样的?有没有人有同样的经历?请帮助我。
最佳答案
当我使用 TabHost 时,我发现很难在以前的选项卡中打开新 Activity 。我谷歌了一下,发现 GroupActivity 是解决这个问题的最佳方法。 GroupActvity Example 但是 GroupActivity 在上一个选项卡中打开新 Activity 时也有同样的问题。后退按钮无法正常用于新 Activity 。搜索后我发现这是因为关注点总是在家长 Activity 上。我必须做
setFocusable(true); requestFocus();
在我的新 Activity 组件上获得关注。
我现在使用 GroupActivity 来自定义 Tabbar 和 Activity 。因为我还在父 Activity 中维护 Activity ID 堆栈,以便当用户按下后退按钮时我可以弹出最近的 Activity 。
否则,如果您不打算实现 Activity 焦点,那么您应该在父级中维护堆栈,当按下后退按钮时,它将启动父级 onBackPressed();您可以调用链接中讨论的子 onBackPressed() 功能。
关于android - 为什么在多选项卡 Activity 中未检测到后退按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6368012/