1

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」部分を削除して上書きすると、わからないものを壊すのが怖いです。

誰が理由を知っていますか?

この問題の回避策を既にお持ちの方がいらっしゃいましたら、よろしくお願いいたします。

4

1 に答える 1

0

Codename Oneで修正した LWUIT 1.5 の既知のバグですが、残念ながら LWUIT を維持している人はもういません。

あなたの選択肢は、この問題に対処するか、LWUIT にパッチを当てるか、TextArea(これはかなり異なります) 使用するか、Codename One に移行するかのいずれかです。

于 2013-10-08T06:24:55.763 に答える