BitmapField
Blackberry プロジェクトに を追加しようとしています。
クラスを で実装し、メソッドをクラスにFieldChangeListener
追加しました。その特定のビットマップ フィールドに をFieldChangeListener
追加しましたが、クリック イベントに応答しません。setChangeListener
これを修正するにはどうすればよいですか?
BitmapField
Blackberry プロジェクトに を追加しようとしています。
クラスを で実装し、メソッドをクラスに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 をオーバーライドして、フォーカス状態が変化したときに表示するビットマップを変更します。