Поле пользовательских кнопок в Blackberry - PullRequest
0 голосов
/ 08 октября 2011

Я использую пользовательский ButtonField в своем приложении.Я использовал код из блога " Blackberry Custom Button Field " в Coderholic, чтобы создать пользовательскую кнопку в своем приложении.Теперь я хочу установить для редактируемого свойства значение false для этой пользовательской кнопки.

Как мне сделать эквивалент button.setEditable(false) для этой пользовательской кнопки?

mybuttonid.setEditable(false) не работает.

1 Ответ

2 голосов
/ 08 октября 2011

Переопределить Field.setEditable(boolean editable) для отслеживания ваших собственных редактируемых логических значений:

private boolean customEditable = true;

public void setEditable(boolean editable) {
    super.setEditable(editable);
    customEditable = editable;
    // invalidate(); forces paint(Graphics graphics) to be called
}

Переопределить navigationClick(int status, int time), чтобы использовать это логическое значение для определения, реагировать ли на события щелчка:

protected boolean navigationClick(int status, int time) {  
    if (customEditable) fieldChangeNotify(1);
    return true;
}

Если вам требуется пользовательский внешний вид для отключенного состояния, также переопределите paint(Graphics graphics), чтобы использовать другой цвет. В этом случае вам также нужно позвонить invalidate() с номера setEditable().

...