-1

我正在BitmapField为我的黑莓项目添加一个。

我用 a 实现了我的类,FieldChangeListener并将该FieldChangeListener方法添加到我的类中。我什setChangeListener至在那个特定的位图字段中添加了一个,但它没有响应点击事件。

我该如何解决?

4

1 回答 1

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 来更改焦点状态更改时显示的位图。

于 2010-08-16T19:01:27.813 回答