伊夫移植的黑莓4.6.0应用到风暴上4.7.0。 所有从触摸事件我试图控制工作正常分开。 在方法i陷阱触摸事件低于不作为它应该,但问题是 之后我在使用TouchEvent逻辑执行并返回菜单(通过菜单按钮激活,多数民众赞成)始终显示。 我已经尝试返回FALSE,TRUE和super.touchEvent(消息),但它仍然出现。

我如何防止菜单从捕捉触摸事件后出现的任何想法?

protected boolean touchEvent(TouchEvent message)
{
     if (message.getEvent() == TouchEvent.CLICK)
     {
        //My code here
     }
}

您的想法是十分赞赏

有帮助吗?

解决方案

只是为了澄清haagmm的回答是:

在一个TouchEvent.CLICK已发送到你的应用程序,navigationClick事件也将被发送。这是兼容性的原因,所以像ButtonFields会,即使应用程序没有明确写入到touchEvents响应触摸屏设备上工作。

如果没有消耗navigationClick事件因场在你的应用程序(返回true),上下文菜单会显示出来。

如果你在一个按钮点击场时看到这种行为,对此的解释是,默认情况下,ButtonFields不消耗单击事件。我发现,这是很好的做法,始终构建ButtonFields与下面的样式位设置:

ButtonField myButtonField = 
    new ButtonField( ButtonField.CONSUME_CLICK | ButtonField.NEVER_DIRTY );

haagmm的代码是一个解决方案,但更好的主意是复制您的TouchEvent.CLICK处理代码,并粘贴在navigationClick方法。这样一来,像黑莓Tour轨迹球设备仍然能够使用你的应用程序。

其他提示

如果你“点击”屏幕或左击鼠标在SIM卡,您将触发上下文菜单,类似于如果你点击了4.6设备上的轨迹球。

您需要做一些类似的你在超负荷的TouchEvent领域:

 protected boolean navigationClick(int status, int time) { return true; }
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top