我正在BitmapField
为我的黑莓项目添加一个。
我用 a 实现了我的类,FieldChangeListener
并将该FieldChangeListener
方法添加到我的类中。我什setChangeListener
至在那个特定的位图字段中添加了一个,但它没有响应点击事件。
我该如何解决?
我正在BitmapField
为我的黑莓项目添加一个。
我用 a 实现了我的类,FieldChangeListener
并将该FieldChangeListener
方法添加到我的类中。我什setChangeListener
至在那个特定的位图字段中添加了一个,但它没有响应点击事件。
我该如何解决?
首先,默认情况下 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 来更改焦点状态更改时显示的位图。