使用Lwuit虚拟键盘,输入的第一个字符不会检查约束验证

时间:2013-09-19 19:34:52

标签: java-me lwuit virtual-keyboard

使用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,请不要错过。

1 个答案:

答案 0 :(得分:0)

它是我们在Codename One修复的LWUIT 1.5中的一个已知错误,遗憾的是没有人再维护LWUIT了。

您可以选择使用此问题,修补LWUIT,使用TextArea(这是非常不同的)或迁移到Codename One。