弹出最后一个片段时处理后退键

时间:2012-10-24 03:39:29

标签: android android-fragments

我根据用户互动动态地将Fragments添加到我的Activity。当我按后退键时,弹出片段。但是,当我按下第一个添加到堆栈的片段的后退键时,“活动”显示一个空的布局。我希望Activity在这一点上调用`finish()'并消失。我试过了:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    super.onKeyDown(keyCode, event);
    if(keyCode == KeyEvent.KEYCODE_BACK){
        if(getFragmentManager().getBackStackEntryCount()==0){
            finish();
            return true;
        }
    }
    return true;
}

但这会阻止后退键功能。任何指向正确方向的人都会受到赞赏。

2 个答案:

答案 0 :(得分:6)

你在哪里添加你的第一个片段?不要将该事务添加到后台堆栈,它应该按照您希望的方式工作。

答案 1 :(得分:5)

将第二个return true;更改为return false;,表示您没有处理按键。这应该在后堆栈为空时关闭活动,并保持原样。