2

我的应用程序中有活动上下文菜单:

    @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 事件本身并在打开上下文菜单的那一刻进行。我该怎么做?

4

0 回答 0