黑莓轨迹球点击,而不是响应事件,上下文菜单显示为什么?

时间:2009-08-17 19:33:22

标签: blackberry menu events contextmenu

我在某些设备上遇到以下情况:当使用点击字段并期望响应时,设备会在屏幕底部中央显示上下文菜单,而不是正确响应该点击事件。 / p>

navigationUnclick和trackwheelUnclick
根据我的阅读,我可以覆盖navigationUnclick和trackwheelUnclick以防止菜单显示。我这样做是作为屏幕级别但是重现中心菜单场景很困难。这是正确的approch吗?

为什么会这样?有什么方法可以解决这个问题吗?

4 个答案:

答案 0 :(得分:6)

我最近发生了这种情况。我正在扩展MainScreen以提供一些基本功能,但不想要上下文菜单。从true返回avigationClick()已删除此行为。

public class MyScreen extends MainScreen {
    protected boolean navigationClick(int status, int time) {
        /*  
        ... custom behavior ... 
        */
        return true;
        // the following line would trigger the context menu
        //return super.navigationClick(status, time);
    }
}

我根本不需要覆盖navigationUnclick()。与@ JustinD使用覆盖onMenu()的方法不同,这只会阻止菜单出现在这种情况下 - 而不是整个屏幕(您可能想要的,这可能是更好的方法)。

无论如何,这是我最近对点击和菜单的体验。

答案 1 :(得分:1)

你可以发布你的代码吗?尝试覆盖trackwheelClick和navigationClick而不是Unlick方法。还要确保在这些方法中返回true。

答案 2 :(得分:1)

如果你覆盖onMenu并且只返回true(你处理了菜单事件)那么菜单就不会显示...假设你不需要一个完整的菜单 - 如果你想要完整的菜单而不是上下文菜单那么只是做Jan所说的,你应该没问题 - 确保返回true,否则事件会冒泡并最终生成菜单

public class MyClass Extends MainScreen
{
   ///
  // Override onMenu to prevent menu from coming up when you click trackwheel 
  public boolean onMenu(int instance)
  {
    return true;
  }
}

答案 3 :(得分:0)

您可以在MainScreen中的所有字段上使用CONSUME_CLICK样式...