【发布时间】:2014-01-26 02:42:29
【问题描述】:
例如,我有 2 个活动,分别名为 Main 和 Photos。我从 Main 开始照片。当我在照片活动打开时按下后退按钮时,我的导航抽屉菜单仍然处于选中状态。但是,如果我按操作栏上的后退菜单,主活动会刷新,因此选择会消失。我想在返回按钮上应用操作栏返回的事件。我该怎么办?
【问题讨论】:
-
如果我的回答为您指明了正确的方向,请立即将其标记为已接受的答案,谢谢
标签: android
例如,我有 2 个活动,分别名为 Main 和 Photos。我从 Main 开始照片。当我在照片活动打开时按下后退按钮时,我的导航抽屉菜单仍然处于选中状态。但是,如果我按操作栏上的后退菜单,主活动会刷新,因此选择会消失。我想在返回按钮上应用操作栏返回的事件。我该怎么办?
【问题讨论】:
标签: android
最好让你的动作栏按钮实现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);
}
【讨论】:
“操作栏上的后退按钮”实际上称为向上按钮。只是为了澄清差异:后退按钮将您返回到上一个活动(这可能会将您带到不同的应用程序),而 向上按钮将使您返回到上一个活动在当前应用中。
我很困惑你怎么同时有一个向上按钮和一个navigation drawer,你能放一些截图吗?
假设您的“导航抽屉菜单”不是您所说的 android 的本机部分,我不建议您覆盖您的后退按钮以获得所需的行为。
请考虑覆盖 onActivityCreated 或 onResume:
@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
}
【讨论】: