Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/225.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 使后退按钮和操作栏后退相同_Android - Fatal编程技术网

Android 使后退按钮和操作栏后退相同

Android 使后退按钮和操作栏后退相同,android,Android,例如,我有两个活动,分别是Main和Photos。我从主屏幕开始拍照。当我在照片活动打开时按“上一步”按钮时,我的导航抽屉菜单仍处于选中状态。然而,若我按下操作栏上的“后退菜单”,主活动将刷新,所以选择将消失。我想应用操作栏后退按钮上的事件。我该怎么做?最好让你的操作栏按钮实现androids back buttons操作,而不是相反,但是,这是可以做到的 // Newer, but Im not sure what API version it came in @Override public

例如,我有两个活动,分别是Main和Photos。我从主屏幕开始拍照。当我在照片活动打开时按“上一步”按钮时,我的导航抽屉菜单仍处于选中状态。然而,若我按下操作栏上的“后退菜单”,主活动将刷新,所以选择将消失。我想应用操作栏后退按钮上的事件。我该怎么做?

最好让你的操作栏按钮实现androids back buttons操作,而不是相反,但是,这是可以做到的

// 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);
}
“操作栏上的后退按钮”实际上称为向上按钮。只是为了澄清区别:后退按钮会将您返回到上一个活动(这可能会使您进入另一个应用程序),而向上按钮会将您返回到当前应用程序中的上一个活动

我很困惑你怎么会同时有一个向上按钮和一个按钮,你能提供一些截图吗

假设你的“导航抽屉菜单”不是你所说的安卓系统的原生部分,我不建议覆盖你的后退按钮来获得你想要的行为

而应考虑重写<代码> OnActuviy创建或 >恢复< /代码>:

@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
}

如果我的回答为您指明了正确的方向,请现在将其标记为已接受的答案,谢谢