我想创建一个编辑区域,其光标位于其右侧 为了说明我是否想写“黑莓”,结果应该是这样的。
<-----------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, 0, 0, width - (getFont().getAdvance(this.getText())) - 10);
invalidate();
return super.keyChar(key, status, time);
}
};
答案 0 :(得分:1)
不幸的是,您必须创建自己的Manager
。没有简单或明显的方法可以做到这一点。
A solution with source code发布在BlackBerry论坛上。
答案 1 :(得分:1)
就像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,0, 0, DrawStyle.RIGHT, width - 10);
super.paint(graphics);
}
};