クリックイベントをBitMapfield(FieldChangelistener)に追加する方法は?
-
28-09-2019 - |
質問
私はAの追加に取り組んでいます BitmapField
私のブラックベリープロジェクトに。
クラスをaで実装しました FieldChangeListener
追加しました FieldChangeListener
私のクラスの方法。私も追加しました setChangeListener
その特定のビットマップフィールドには、クリックイベントに応答していません。
これを修正するにはどうすればよいですか?
解決
まず、BitMapfieldはデフォルトではフォーカスできないため、それを修正するためにサブクラス化してオーバーライドする必要があります。次に、NavigationClickをオーバーライドして、フィールド変更されたイベントを発射します。最小フィールドのコードスニペット:
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をオーバーライドすることでこれを変更できます。また、FocusとOnunfocusを変更して、フォーカス状態が変更されたときに表示するビットマップを変更できます。
所属していません StackOverflow