覆盖 Android 中顶部菜单问题的后退按钮事件

Override back button event of top menu issue in Android

我想从当前 activity 返回到上一个 activity。

所以我将这段代码添加到当前activity

 @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) {
            //super.onBackPressed();
            //NavUtils.navigateUpFromSameTask(this);
            this.finish();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }

但它根本不触发。

我缺少什么?

重写 Activity 中的 onOptionsItemSelected() 方法:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home: // the default resource ID of the actionBar's back button
            Intent intent = new Intent(CurrentActivity.this, TargetActivity.class);
            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
            intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK);
            startActivity(intent);
            finish();
            break;
    }

    return true;
}

您使用 item.getItemId() 获得了点击的菜单项 id, 然后检查它是否等于 android.R.id.home,actionBar 后退按钮的默认资源 ID。

FLAG_ACTIVITY_CLEAR_TASK 标志完成所有旧活动。