0

我想在用户按下菜单按钮时显示上下文菜单。我找到并使用了以下代码片段:

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
  if((keyCode == KeyEvent.KEYCODE_MENU) && event.getRepeatCount() == 0)
  {
    ImageView v = (ImageView)findViewById(IMAGE_ID);
    Log.v("me", "menu " + v.toString());
    openContextMenu(v);
  }
  return true; // return false; doesn't work either
}

该视图当然是为上下文菜单注册的,并且通过长按可以正常工作。问题是上述代码只能不时工作。也就是说,当我按下菜单按钮时,总是会触发日志消息,但在极少数情况下会显示上下文菜单。显示正常的唯一情况是在应用程序启动之后。换句话说,只有第一次尝试是成功的,其他的都是偶尔工作的,但大部分都没有。视图不会更改并且始终可以找到,否则可能会在日志记录行中产生此类问题和异常。

4

1 回答 1

0

事实证明,有一个错误onCreateContextMenu会阻止上下文菜单不时显示。事实上,它并没有用项目填充菜单,并且在 Android 的核心设计中会跳过一个空菜单。现在它按预期工作。

于 2013-09-15T21:17:24.497 回答