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 如何将单击事件添加到位图字段(fieldchangeListener)?_Blackberry_Blackberry Storm_Blackberry Eclipse Plugin - Fatal编程技术网

Blackberry 如何将单击事件添加到位图字段(fieldchangeListener)?

Blackberry 如何将单击事件添加到位图字段(fieldchangeListener)?,blackberry,blackberry-storm,blackberry-eclipse-plugin,Blackberry,Blackberry Storm,Blackberry Eclipse Plugin,我正在为我的Blackberry项目添加一个BitmapField 我用一个FieldChangeListener实现了我的类,并将FieldChangeListener方法添加到我的类中。我甚至在特定的位图字段中添加了一个setChangeListener,但它不响应单击事件 如何修复此问题?首先,BitmapField在默认情况下不可聚焦,因此您需要子类化并重写isFocusable以修复此问题。然后覆盖导航单击以触发fieldChanged事件。最小字段的代码段: import net.r

我正在为我的Blackberry项目添加一个
BitmapField

我用一个
FieldChangeListener
实现了我的类,并将
FieldChangeListener
方法添加到我的类中。我甚至在特定的位图字段中添加了一个
setChangeListener
,但它不响应单击事件


如何修复此问题?

首先,BitmapField在默认情况下不可聚焦,因此您需要子类化并重写isFocusable以修复此问题。然后覆盖导航单击以触发fieldChanged事件。最小字段的代码段:

import net.rim.device.api.ui.component.BitmapField;

public class ClickableBitmapField extends BitmapField {
    public boolean isFocusable() {
        return true;
    }

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

除此之外,您可能希望提供一些关于您的领域何时处于焦点的指示(除非您只关心触摸屏设备)。默认实现只是在位图的任何透明区域上绘制一个高亮显示。您可以通过覆盖drawFocus来更改此设置,也可以通过覆盖onFocus和onFocus来更改焦点状态更改时显示的位图。

您可以发布一些代码,让我们看看您到目前为止得到了什么吗?