Blackberry事件处理和焦点问题

Blackberry事件处理和焦点问题,blackberry,Blackberry,我有一个小黑莓应用程序的问题,触摸事件正在处理的2个特定领域之一,有重点 在我的例子中,我有两个图像,一个在顶部(屏幕上的第一个元素),另一个在底部(添加到屏幕上的最后一个元素)。这两个图像都是位图字段的子类。它们的目的是在用户点击(用轨迹板/球单击)时显示网站 问题是当其中任何一个有焦点时,无论用户点击屏幕的何处(即编辑字段、另一个自定义按钮或只是背景的一部分),有焦点的位图字段都会使用事件调用web浏览器。这显然只是BB Torch模拟器上的问题,我正在为BB OS 5.0构建 我让位图字段

我有一个小黑莓应用程序的问题,触摸事件正在处理的2个特定领域之一,有重点

在我的例子中,我有两个图像,一个在顶部(屏幕上的第一个元素),另一个在底部(添加到屏幕上的最后一个元素)。这两个图像都是位图字段的子类。它们的目的是在用户点击(用轨迹板/球单击)时显示网站

问题是当其中任何一个有焦点时,无论用户点击屏幕的何处(即编辑字段、另一个自定义按钮或只是背景的一部分),有焦点的位图字段都会使用事件调用web浏览器。这显然只是BB Torch模拟器上的问题,我正在为BB OS 5.0构建

我让位图字段同时使用导航单击和触摸事件

此外,任何关于黑莓API事件处理指南的方向(如非RIM编写的指南)都会很有帮助

更新: 我试过:

    public boolean isFocusable() {
        return false;
    }
但是,理想情况下,我希望它能在Curve和Bold等设备上使用

更新2:
布局管理器中有几个LabelFields可以接收焦点,但它们不会导致此问题,只有在位图字段具有焦点时才会发生此问题。

确保在
touchEvent()上
您正在检查触摸的位置。如果触摸超出了位图字段的范围,则应返回
super.touchEvent(message)
。无论触摸在何处,当某个字段具有焦点时,会首先将其发送到该字段,以确定是否应该处理它。

确保在
touchEvent()上
您正在检查触摸的位置。如果触摸超出位图字段的范围,则应返回
super.touchEvent(消息)
。无论触摸在何处,当一个字段具有焦点时,它首先被发送到该字段,以确定它是否应该处理它。

我建议通过从
字段
子类化来创建自定义图像按钮字段。覆盖
绘制(图形)
以绘制图像和焦点边框(或背景)。然后只需覆盖
navigationClick(int status,int time)
。当用户在触摸屏上单击您的字段时,BB UI框架将调用该方法。它也适用于非触摸屏设备。这是一个巨大的好处-您根本不需要为
TouchEvent
而烦恼。

我建议通过从
字段
子类化来创建自定义图像按钮字段
绘制(图形)
以绘制图像和聚焦边框(或背景)。然后只需覆盖
导航单击(int status,int time)
。当用户在触摸屏上单击您的字段时,BB UI框架将调用该方法。它也适用于非触摸屏设备。这是一个巨大的好处-您根本不需要为
TouchEvent
s而烦恼