当我实例化一个textField时,我有一个数字,我想成为默认文本。问题是,我似乎无法将该值放入文本字段而不会出现错误。奇怪的是,我使用相同的TextField来设置包含数字的变量的值。
TextField myTF = new TextField("Number", value, 10, TextField.NUMERIC);
当我运行此代码时,我收到一个异常,指出该值与TextField.NUMERIC的约束不匹配。但是,当我检查变量值的值时,我得到以下输出:
value = 1234567890
value.length() = 10
该值由同一个TextField设置,保存到我正在处理的手机中,当从手机的设置加载时,会抛出异常。
答案 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);