2012-12-14 1 views
1

입력란에 사용하는 텍스트 필드가 필요합니다. 나는 그것을 중심으로 만들고 싶다. 숫자 키패드로 허용하고 싶습니다.편집 필드 센터 및 블랙 베리의 숫자 키패드

BB OS 5에서 잘 작동하고 BB OS 6/7/7.1을 사용할 때 숫자 키패드를 표시 할 수 없었습니다.

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

답변

0

저는 HFM을 사용하고 편집 필드를 추가했습니다. 또한 keyChar() 방법을 사용하여 각 키 작동시 커서 위치를 설정하십시오.

그래서 편집 필드를 사용하여 가상 숫자 키패드로 커서 위치를 중앙에 설정했습니다.

감사합니다.

2

그리고 센터로 설정하는 수평/수직 필드 관리자를 만듭니다

follwing을 코드입니다. 그런 다음 editField를 추가합니다.

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

숫자 가상 키보드를 표시하는 것이 좋습니다. 그러나 Horizontal Field 관리자에 추가 할 때 필드가 가운데에 표시되지 않았습니다. 또한 ** OS 7/7.1 **을 사용 중입니다. 다음과 같이 내가 HFM을 사용하고 있습니다 : 'HorizontalFieldManager hfmTxtNumber = 새로운 HorizontalFieldManager (NO_HORIZONTAL_SCROLL | Field.FIELD_HCENTER) HorizontalFieldManager hfmTxtNumber =에' – AnkitRox

+0

변화 새로운 HorizontalFieldManager (HorizontalFieldManager.FIELD_HCENTER를); 다음 시도하십시오. – Signare

+0

또한 작동하지 않습니다. RichTextField를 사용하여 위 코드의 중심으로 만들 수 있었지만 그 당시에는 가상 숫자 키보드가 표시되지 않았습니다. 나는 또한 TextFilter.Numeric 등 – AnkitRox