0

textField をインスタンス化すると、デフォルトのテキストにしたい数値が含まれています。問題は、エラーが発生せずにその値をテキストフィールドに配置できないように見えることです。奇妙なことに、同じ TextField を使用して、数値を含む変数の値を設定しています。

TextField myTF = new TextField("Number", value, 10, TextField.NUMERIC);

このコードを実行すると、値が TextField.NUMERIC の制約と一致しないという例外が発生します。ただし、変数の値の値を確認すると、次の出力が得られます。

value          = 1234567890
value.length() = 10

値は同じ TextField によって設定され、作業中の電話に保存され、電話の設定から読み込まれると例外がスローされます。

4

4 に答える 4

1

これは間違いなく JVM のバグです。が文字列を返した場合TextField、それを受け入れることができなければなりません。私がアドバイスできる唯一のことは、フィールドのサイズまたは制約で少し遊ぶことです。使用しているデバイスを指定していません。バグ修正された新しいファームウェアがいくつかある可能性があります。

于 2009-06-30T17:07:18.177 に答える
1

問題の潜在的な回避策は、フィールドを null 値でインスタンス化し、その後テキストを設定することです。

TextField myTF = new TextField("Number", null, 10, TextField.NUMERIC);
myTF.setString(value);
于 2009-06-30T17:11:33.210 に答える
1

私も同じ問題を抱えてる。携帯電話はフィールド値を int として格納しようとしています。最大の int 値は (2^31) - 1 = 2,147,483,647 であり、これはあなた (および私) が必要とする値よりも 1 桁不足しています。回避策として、テキスト型のフィールドを作成し、IS_LATIN_DIGITS の文字セットを設定します。乾杯。

于 2010-03-16T23:47:25.293 に答える
0

私の考えはあなたがそれを試してみることです

String str=""+value;
TextField myTF = new TextField("Number",str,10,TextField.NUMERIC);
于 2010-11-24T04:25:21.383 に答える