例如,我有2个名为Main和Photos的活动。我从Main开始照片。当照片活动打开时按下后退按钮,我的导航抽屉菜单仍然处于选中状态。但是,如果我按下操作栏上的后退菜单,主活动将刷新,因此选择将消失。我想在后退按钮上应用操作栏后退事件。我该怎么办?
答案 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的原生部分,我建议您不要覆盖“后退”按钮以获得所需的行为。
而是考虑覆盖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
}