Lwuit バージョン 1.5 を使用して、仮想キーボードの使用に問題があります。Numeric 制約を持つ TextField が与えられます。 入力された最初の文字は、指定された制約にもかかわらず、テキストフィールドに直接送られます。
この問題の発生時actionCommand
にソースコードを見つけました。VirtualKeyboard.java
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」部分を削除して上書きすると、わからないものを壊すのが怖いです。
誰が理由を知っていますか?
この問題の回避策を既にお持ちの方がいらっしゃいましたら、よろしくお願いいたします。