我正在为我的Blackberry项目添加BitmapField
。
我使用FieldChangeListener
实现了我的课程,并将FieldChangeListener
方法添加到了我的课程中。我甚至在该特定的位图字段中添加了setChangeListener
,但它没有响应点击事件。
我该如何解决这个问题?
答案 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来更改焦点状态更改时显示的位图。