2009-06-30 9 views
0

Wenn ich ein TextField instanziiere, habe ich eine Nummer darin, die ich als Standardtext haben möchte. Das Problem ist, ich kann nicht in der Lage sein, diesen Wert in das Textfeld zu setzen, ohne einen Fehler zu bekommen. Das Seltsame daran ist, dass ich mit demselben TextField den Wert der Variablen festlege, die die Zahl enthält.J2ME TextField Exception

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

Wenn ich diesen Code ausführen, erhalte ich eine Ausnahme dieser Wert besagt nicht die Zwänge der TextField.NUMERIC entspricht. Allerdings, wenn ich überprüfe das Tal des Wertes der Variablen, erhalte ich die folgende Ausgabe:

value   = 1234567890 
value.length() = 10 

Der Wert um den gleichen TextField- gesetzt ist, auf das Telefon gespeichert, die ich arbeite, und beim Laden von Die Einstellungen des Telefons lösen eine Ausnahme aus.

Antwort

1

Dies ist definitiv ein JVM-Fehler. Wenn eine TextField eine Zeichenfolge zurückgegeben hat, muss sie diese akzeptieren können. Das einzige, was ich empfehlen kann, ist ein bisschen mit der Größe des Feldes oder den Einschränkungen zu spielen. Sie haben das von Ihnen verwendete Gerät nicht angegeben, da könnte es neue Firmwares mit Bugfixes geben.

1

eine mögliche Problemumgehung für Ihr Problem könnte sein, das Feld mit einem Nullwert zu instanziieren und den Text anschließend festzulegen.

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

Ich habe das gleiche Problem. Das Handy versucht, den Feldwert als int zu speichern, und der maximale int-Wert ist (2^31) - 1 = 2.147.483.647, was eine Ziffer weniger ist als das, was Sie (und ich) brauchen. Umgehung, machen Sie Ihr Feld mit dem Typ Text und setzen Sie einen Zeichensatz von IS_LATIN_DIGITS. Prost.

0

Meine Idee ist es, Sie versuchen es

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