Как сделать так, чтобы Blackberry BitmapField не фокусировался во время выполнения
Как сделать ежевику BitmapField
не фокусируется во время выполнения? Я хочу сделать его затемненным в зависимости от определенного события.
2 ответа
Расширьте BitmapField, чтобы переопределить isFocusable()
метод как это:
public class FocusableBitmapField extends BitmapField {
//Default value depending on whether you want it that way.
private boolean focusable = true;
public boolean isFocusable() {
return focusable;
}
public boolean setFocusable(boolean focusable) {
this.focusable = focusable;
}
}
В большинстве случаев это работает:
field.setEditable(false);
Вы также можете создать не фокусируемое поле, передав флаг стиля Field.NON_FOCUSABLE
или же Field.FOCUSABLE
в конструктор, но после создания экземпляра вы не можете изменить его фокусируемое состояние. Даже если бы вы могли, тогда поле не будет выглядеть "затемненным" или "отключенным", но просто фокус переместится к следующему фокусируемому полю после него. Примером этого являются не фокусируемые поля меток.
ОБНОВЛЕНИЕ: Это будет работать для встроенных полей, таких как EditFields, Checkbox, RadioButtons и т. Д. В вашем случае это не работает, поскольку BitmapField не является "редактируемым", это поле только для чтения. Вы можете сделать трюк, как в ответах @adwiv, но с "отключенным" или серым наложением вам придется реализовать его самостоятельно.