J2ME TextField异常

时间:2009-06-30 16:48:13

标签: java java-me textfield numeric lcdui

当我实例化一个textField时,我有一个数字,我想成为默认文本。问题是,我似乎无法将该值放入文本字​​段而不会出现错误。奇怪的是,我使用相同的TextField来设置包含数字的变量的值。

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

当我运行此代码时,我收到一个异常,指出该值与TextField.NUMERIC的约束不匹配。但是,当我检查变量值的值时,我得到以下输出:

value          = 1234567890
value.length() = 10

该值由同一个TextField设置,保存到我正在处理的手机中,当从手机的设置加载时,会抛出异常。

4 个答案:

答案 0 :(得分:1)

这绝对是一个JVM错误。如果TextField返回一个字符串,它必须能够接受它。我唯一可以建议的是根据场地的大小或约束来玩。您尚未指定所使用的设备,可能会有一些带有错误修正的新固件。

答案 1 :(得分:1)

您的问题的潜在解决方法可能是使用空值实例化字段,然后再设置文本。

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

答案 2 :(得分:1)

我有同样的问题。手机试图将字段值存储为int,并且最大int值为(2 ^ 31) - 1 = 2,147,483,647,这比您(和我)需要的数字短一位数。解决方法,使您的字段类型为文本并设置IS_LATIN_DIGITS的字符集。欢呼声。

答案 3 :(得分:0)

我的想法是你试试

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