覆盖 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
标志完成所有旧活动。
我想从当前 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
标志完成所有旧活动。