使后退按钮和操作栏恢复原状

时间:2014-01-26 02:42:30

标签: android

例如,我有2个名为Main和Photos的活动。我从Main开始照片。当照片活动打开时按下后退按钮,我的导航抽屉菜单仍然处于选中状态。但是,如果我按下操作栏上的后退菜单,主活动将刷新,因此选择将消失。我想在后退按钮上应用操作栏后退事件。我该怎么办?

2 个答案:

答案 0 :(得分:1)

最好使你的操作栏按钮实现 androids 后退按钮操作,而不是相反,但是,它可以完成。

// Newer, but Im not sure what API version it came in
@Override
public void onBackPressed() {
    //super.onBackPressed();
    mMyAbBackBtn.callOnClick();
}

// Older, still supported
@Override
public boolean onKeyUp(int keyCode, KeyEvent event) {
    if (KeyEvent.KEYCODE_BACK == keyCode) {
        mMyAbBackBtn.callOnClick();
        return true; //handled
    }
    return super.onKeyUp(keyCode, event);
}

答案 1 :(得分:1)

“操作栏上的后退按钮”实际上称为向上按钮。只是为了澄清差异:后退按钮会返回上一个活动(这可能会将您带到另一个应用),而向上按钮将返回上一个活动在当前的应用程序中

我很困惑你如何同时拥有一个向上按钮和navigation drawer,你会张贴一些截图吗?

假设您的“导航抽屉菜单”不是您正在谈论的Android的原生部分,我建议您不要覆盖“后退”按钮以获得所需的行为。

而是考虑覆盖onActivityCreatedonResume

@Override
public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(); // don't restore the state
    // alternatively:
    // super.onActivityCreated(savedInstanceState); // you may have other things you
                                                    // want to preserve
    // unSelect(); // your code to unselect whatever your navigation menu drawer is
}

@Override
public void onResume()
{
    super.onResume();
    unSelect(); // your code to unselect whatever your navigation menu drawer is
}