2010-08-16 2 views
-1

Я работаю над добавлением BitmapField к моему проекту Blackberry.Как добавить событие Click to BitmapField (fieldchangeListener)?

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

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

+1

Можете ли вы разместить код, чтобы мы могли видеть, что у вас есть? – taylonr

ответ

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, чтобы изменить растровое изображение, которое вы показываете при изменении состояния фокусировки.

Смежные вопросы