编辑FIeld - 中心并使用黑莓中的数字键盘

时间:2012-12-14 05:55:08

标签: blackberry textbox textfield blackberry-simulator

我想要一个文本字段,用于输入数字。我想让它成为中心。并希望使用数字键盘。

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);

2 个答案:

答案 0 :(得分:2)

创建水平/垂直场管理器,然后将其设置为中心。然后将编辑字段添加到其中。

EditField e=new EditField(label, initial value, max char limit, BasicEditField.FILTER_INTEGER);

答案 1 :(得分:0)

我使用了HFM并在其中添加了编辑字段。 还可以使用keyChar()方法在每个键操作中设置光标位置。

这就是我使用编辑字段将光标位置设置在虚拟数字键盘中心的原因。

也感谢所有人。