Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/blackberry/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Blackberry 黑莓风暴事件_Blackberry_Touchscreen_Rim 4.7 - Fatal编程技术网

Blackberry 黑莓风暴事件

Blackberry 黑莓风暴事件,blackberry,touchscreen,rim-4.7,Blackberry,Touchscreen,Rim 4.7,我将黑莓4.6.0应用程序移植到4.7.0版本的storm上。 除了我试图控制的触摸事件外,一切正常。 我在下面的方法中捕捉触摸事件,该方法按其预期的方式执行,但问题是 触摸事件中的逻辑执行并返回后,始终显示菜单(通过菜单按钮激活)。 我已经尝试返回false、true和super.touchEvent(消息),但它仍然出现 如何防止触摸事件后出现菜单 protected boolean touchEvent(TouchEvent message) { if (message.getE

我将黑莓4.6.0应用程序移植到4.7.0版本的storm上。 除了我试图控制的触摸事件外,一切正常。 我在下面的方法中捕捉触摸事件,该方法按其预期的方式执行,但问题是 触摸事件中的逻辑执行并返回后,始终显示菜单(通过菜单按钮激活)。 我已经尝试返回false、true和super.touchEvent(消息),但它仍然出现

如何防止触摸事件后出现菜单

protected boolean touchEvent(TouchEvent message)
{
     if (message.getEvent() == TouchEvent.CLICK)
     {
        //My code here
     }
}
非常感谢您的想法

如果您在sim卡中“单击”屏幕或鼠标左键,您将触发关联菜单,类似于在4.6设备上单击轨迹球

您需要在重载touchEvent的字段上执行类似的操作:

 protected boolean navigationClick(int status, int time) { return true; }

为了澄清哈格姆的答案:

将TouchEvent.CLICK发送到应用程序后,还将发送navigationClick事件。这是出于兼容性的原因,因此,即使应用程序没有明确编写以响应touchEvents,ButtonFields之类的东西也可以在触摸屏设备上工作

如果应用程序中的字段未使用navigationClick事件(返回true),则将显示关联菜单

如果您在单击按钮字段时看到这种行为,那么解释是默认情况下,按钮字段不使用单击事件。我发现,始终使用以下样式位集构建ButtonField是一种好的做法:

ButtonField myButtonField = 
    new ButtonField( ButtonField.CONSUME_CLICK | ButtonField.NEVER_DIRTY );
haagmm的代码是一种解决方案,但更好的方法是复制TouchEvent.CLICK处理代码,并将其粘贴到navigationClick方法中。这样,像BlackBerry Tour这样的轨迹球设备仍然可以使用您的应用程序