2009-06-30 1 views
0

私はtextFieldをインスタンス化するときに、デフォルトのテキストにしたいという番号があります。問題は、エラーを出さずにその値をテキストフィールドに入れることができないように思えることです。奇妙な点は、数値を含む変数の値を設定するために同じTextFieldが使用されていることです。J2ME TextField Exception

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

このコードを実行すると、値がTextField.NUMERICの制約と一致しないという例外が表示されます。しかし、私は、変数の値の谷をチェックするとき、私は次のような出力が得られます。

value   = 1234567890 
value.length() = 10 

値は、私が働いている携帯電話に保存され、同じテキストフィールドで設定され、そしてからロード時にされます電話の設定は、例外をスローします。

答えて

1

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

1

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

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

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

0

私の考えは、あなたがそれを試している

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