问题描述
|
我想创建一个编辑域,其光标保持在它的右侧。
为了说明我是否要写“ blackBerry”,结果应该是这样的。
<-----------width-of-editfield------>
b
bl
bla
blac
black
blackb
blackbe
blackber
blackberr
blackBerry
谢谢
由于缺乏名声之类的东西,我无法回答自己的问题。
无论如何,我找到了一种简单的方法。 width
是指保存此编辑字段的管理器的宽度。
editField = new EditField(\"\",\"\",maxChars,EditField.NO_NEWLINE | EditField.NON_SPELLCHECKABLE){
protected boolean keyChar(char key,int status,int time) {
editField.setPadding(0,width - (getFont().getAdvance(this.getText())) - 10);
invalidate();
return super.keyChar(key,status,time);
}
};
解决方法
不幸的是,您将必须创建自己的
Manager
。没有简单或明显的方法来执行此操作。
BlackBerry论坛上发布了带有源代码的解决方案。
,就像Swati的解决方案一样。我确实是这样的:
editField = new EditField(\"\",\"\",maxChars,EditField.NO_NEWLINE | EditField.NON_SPELLCHECKABLE){
protected boolean keyChar(char key,int status,int time){
switch (key){
case Characters.BACKSPACE:{
try {
text = text.substring(0,text.length()-1);
invalidate();
} catch (IndexOutOfBoundsException e) {}
return true;
}
}
text = text + key;
invalidate();
return true;
}
protected void paint(Graphics graphics) {
graphics.drawText(text,DrawStyle.RIGHT,width - 10);
super.paint(graphics);
}
};