-1

BitmapFieldBlackberry プロジェクトに を追加しようとしています。

クラスを で実装し、メソッドをクラスに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 に答える