【问题标题】:Can you intercept the long press on menu?你能拦截菜单上的长按吗?
【发布时间】:2011-03-08 00:33:13
【问题描述】:

我正在使用应该非常简单的代码,但它就是不想工作。操作系统会阻止拦截吗?

@Override
public boolean onKeyLongPress(int keyCode, KeyEvent event) {


    if (keyCode == KeyEvent.KEYCODE_MENU) 
    {
    longOptionPress = true;
    openOptionsMenu();
        return true;
    }
    return super.onKeyLongPress(keyCode, event);
}

【问题讨论】:

    标签: android


    【解决方案1】:

    您必须从普通的onKeyPress() 方法调用startTracking() 事件:

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_MENU) {
            event.startTracking();
            return true;
        }
        return super.onKeyDown(keyCode, event);
    }
    

    另见a question I asked and answered some time ago

    【讨论】:

    • 感谢您的快速回答和链接...回答了常规菜单未启动的后续问题。
    • 现在的问题是您无法单击菜单按钮。如何避免?
    【解决方案2】:

    如果是ListView,需要使用onCreateContextMenu

     public void onCreateContextMenu(ContextMenu menu, View view, ContextMenuInfo menuInfo)
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-11-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多