使用Lwuit 1.5版,我在使用虚拟键盘时遇到问题。 给定具有数字约束的TextField。 尽管有约束条件,输入的第一个字符将直接转到文本字段。
我发现actionCommand
VirtualKeyboard.java
上的sourceCode产生了这个问题;
case INSERT_CHAR:
Button btn = currentButton;
String text = btn.getText();
if (inputField.getText().length() == 0) {
inputField.setText(text);
inputField.setCursorPosition(text.length());
} else {
inputField.insertChars(text);
}
break;
如上所示,第一个字符永远不会通过insertChars
并稍后检查有效性。
问题是:我无法弄清楚为什么会实施这种行为,如果我覆盖删除“if”部分,我害怕打破我没有意识到的东西。
任何人都知道原因是什么?
如果有人已经为此问题制定了Workarround,请不要错过。
答案 0 :(得分:0)
它是我们在Codename One修复的LWUIT 1.5中的一个已知错误,遗憾的是没有人再维护LWUIT了。
您可以选择使用此问题,修补LWUIT,使用TextArea
(这是非常不同的)或迁移到Codename One。