如何将Click事件添加到位图字段(字段更改侦听器)?

时间:2010-08-16 12:59:35

标签: blackberry blackberry-storm blackberry-eclipse-plugin

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

我使用FieldChangeListener实现了我的课程,并将FieldChangeListener方法添加到了我的课程中。我甚至在该特定的位图字段中添加了setChangeListener,但它没有响应点击事件。

我该如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

首先,BitmapField默认情况下不可聚焦,因此您需要子类化并覆盖isFocusable来修复它。然后覆盖navigationclick以触发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和onUnfocus来更改焦点状态更改时显示的位图。