我正在尝试创建一个以DrawerActivity
为主要活动的应用。我在其中实现了8个片段,它们对应于抽屉中的每个项目。现在,我遇到的问题是,每当我尝试按下后退按钮从片段返回DrawerActivity
时,我最终会退出应用程序。我已经在论坛上搜索了三天了,并没有找到任何解决方案。相当沮丧,我愚蠢地删除了我的代码,所以我现在无法真正显示它。任何人都可以简单地向我解释如何使用后退按钮退出片段,并返回到我的主要活动吗?
当前情况:
DrawerActivity
包含八个片段,彼此独立。让我们称它们为片段A到H.当我去片段A时,我应该能够打开navigationDrawer
并前往从B到H的任何其他片段。但是,按下后退按钮,我也应该是能够回到抽屉活动的主页。
我尝试过的不起作用的是 1.使用onBackPressed和popBackStack 2.创建自定义监听器 3.使用fragmentTransaction。
答案 0 :(得分:0)
您是否尝试在不调用超类方法的情况下覆盖onBackPressed()? (这样就可以防止调用finish()。)
@Override
public void onBackPressed() {
//show Fragment A
}
在没有" super.onBackPressed()"的情况下调用它它应该工作。
答案 1 :(得分:0)
我无法相信自己有多愚蠢。当我突然意识到抽屉活动中的第一个片段始终是默认片段时,我正在手机上使用我的Gmail应用程序,并且应用程序应始终在后退按钮上恢复为该应用程序。我想的是抽屉活动会在按下后退时回到原始状态,但我没有考虑到碎片是活动本身的一部分。 谢谢大家试图理解我的问题,这根本不是问题......似乎我不顾一切地学到了什么。
答案 2 :(得分:0)
你必须将你的片段添加到android后面的堆栈中,如下所示:
data = JSON.stringify(current.serializeArray());