Как добавить событие Click в BitmapField (fieldchangeListener)? - PullRequest
0 голосов
/ 16 августа 2010

Я работаю над добавлением BitmapField в свой проект Blackberry.

Я реализовал свой класс с FieldChangeListener и добавил метод FieldChangeListener в свой класс. Я даже добавил setChangeListener к этому конкретному полю растрового изображения, но он не отвечает на события щелчка.

Как мне это исправить?

1 Ответ

1 голос
/ 16 августа 2010

Во-первых, BitmapField по умолчанию не фокусируется, поэтому вам нужно создать подкласс и переопределить isFocusable, чтобы это исправить.Затем переопределите навигацию, щелкните, чтобы запустить событие 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, чтобы изменить растровое изображение, отображаемое при изменении состояния фокуса.

...