2009-06-30 9 views
0

Когда я создаю экземпляр textField, у меня есть номер, в котором я хочу быть текстом по умолчанию. Проблема заключается в том, что я не могу поместить это значение в текстовое поле, не получив ошибку. Странная вещь в том, что тот же TextField - это то, что я использую, чтобы установить значение переменной, содержащей это число.J2ME TextField Exception

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

Когда я запускаю этот код, я получаю исключение о том, что значение не соответствует ограничениям TextField.NUMERIC. Однако, когда я проверяю юдоль значения переменной, я получаю следующий результат:

value   = 1234567890 
value.length() = 10 

Значение задается тем же TextField, сохраняются в телефоне, что я работаю, и при загрузке из настройки телефона, выдает исключение.

ответ

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);