我想要一個文本字段,它用於輸入數字。我想讓它成爲中心。並希望允許使用數字鍵盤。編輯FIELD - 中心和黑莓數字鍵盤
它在BB OS 5下工作正常,當使用BB OS 6/7/7.1時,我無法顯示數字鍵盤。
Follwing是代碼:
txtEventNumber = new RichTextField(RichTextField.TEXT_ALIGN_HCENTER) {
public void paint(Graphics graphics) {
super.paint(graphics);
int oldColor = Color.GRAY;
graphics.setBackgroundColor(Color.WHITE);
graphics.setColor(TEXT_COLOR);
Font font = this.getFont().derive(Font.EMBOSSED_EFFECT, 20);
this.setFont(font);
graphics.drawRoundRect(0, 0, getWidth(), getHeight(), 10, 10);
graphics.setColor(oldColor);
super.paint(graphics);
}
public int getPreferredHeight() {
return super.getPreferredHeight() + ADD_MARGIN;
}
protected void onFocus(int direction) {
if (Touchscreen.isSupported() && getScreen().getVirtualKeyboard() != null)
// Show keyboard
getScreen().getVirtualKeyboard().setVisibility(VirtualKeyboard.SHOW);
};
protected void onUnfocus() {
if (Touchscreen.isSupported() && getScreen().getVirtualKeyboard() != null)
// Hide keyboard
getScreen().getVirtualKeyboard().setVisibility(VirtualKeyboard.HIDE_FORCE);
};
};
txtEventNumber.setEditable(true);
// can enter only numeric digits
if (Touchscreen.isSupported())
// show numeric keypad
txtEventNumber.setFilter(TextFilter.get(TextFilter.DEFAULT_SMART_PHONE));
else
txtEventNumber.setFilter(TextFilter.get(TextFilter.REAL_NUMERIC));
txtEventNumber.setMargin(10, 10, 0, 10);
顯示數字虛擬鍵盤很好。 但是,將其添加到水平字段管理器時,它不顯示在中心的字段。另請注意,我正在使用** OS 7/7.1 **。我已經使用HFM如下: 'HorizontalFieldManager hfmTxtNumber = new HorizontalFieldManager(NO_HORIZONTAL_SCROLL | Field.FIELD_HCENTER);' – AnkitRox
更改爲HorizontalFieldManager hfmTxtNumber = new HorizontalFieldManager(HorizontalFieldManager.FIELD_HCENTER);然後嘗試。 – Signare
這也不起作用。我能夠按照上面的代碼(使用RichTextField)使其居中,但當時它沒有顯示虛擬數字鍵盤。我也嘗試了不同的過濾方法,如TextFilter.Numeric等 – AnkitRox