我的应用程序中有活动上下文菜单:
@Override
public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) {
super.onCreateContextMenu(menu, v, menuInfo);
getMenuInflater().inflate(R.menu.context_main_menu, menu);
}
@Override
public boolean onContextItemSelected(MenuItem item) {
contextMenuOpened = false;
switch (item.getItemId()) {
case R.id.get_image_from_gallery:
startGalleryPicker();
break;
case R.id.get_image_from_camera:
startCamera();
break;
case R.id.cancel:
break;
default:
return super.onContextItemSelected(item);
}
return super.onContextItemSelected(item);
}
问题是,当我打开此上下文菜单时,我无法在我的活动中捕获 backpressed-key 事件:覆盖方法dispatchKeyEvent(KeyEvent event)、onKeyDown(int keyCode、KeyEvent event)、onBackPressed()的日志为空。
我知道在一个活动中有一个事件“上下文菜单已关闭”的回调 - onContextMenuClosed(Menu menu),但我需要处理 backpressed-key 事件本身并在打开上下文菜单的那一刻进行。我该怎么做?