Строка в Int с Android - PullRequest
       2

Строка в Int с Android

0 голосов
/ 02 марта 2011

Я новичок в программировании для Android, и я делаю игру с угадыванием чисел, чтобы узнать основной код Android. В моей программе у меня есть EditText (в основном TextField), и мне было интересно, как я могу изменить все, что пользователь вводит в int. До сих пор я пробовал Integer.parseInt (string), но это не сработало. Вот код, который у меня есть сейчас:

EditText textfield = (EditText) findViewById(R.id.textfield);
String label = textfield.getText().toString();
int guess = Integer.parseInt(label);

Когда я запускаю эту программу для отладки на моем телефоне, все работает нормально, пока я не нажму кнопку, с которой вызываю этот код. Когда я нажимаю кнопку, программа закрывается, и появляется всплывающее окно с сообщением

"Тест приложения (процесс com.android.test) неожиданно остановился. Пожалуйста, повторите попытку."

Это происходит каждый раз, когда я пытаюсь запустить программу. Я отладил, и я выделил проблему в строке кода, которая анализирует int. Как мне сделать эту работу?

Ответы [ 2 ]

1 голос
/ 02 марта 2011

Вы, вероятно, получаете NumberFormatException, но этого недостаточно, чтобы помочь вам, кроме как временно.

Что вам нужно сделать, это ознакомиться с некоторыми средствами отладки Android .

Запустите эмулятор телефона с помощью инструментов платформы.

Откройте командную строку и перейдите в каталог android-sdk\platform-tools.

Запустите adb logcat, чтобы подключиться к работающему эмулятору. В эмуляторе запустите вашу программу и вызовите ошибку. Вы получите трассировку стека в окне командной строки, чтобы помочь вам изолировать вашу проблему.

Ознакомьтесь с , как использовать LogCat на сайте разработчика .

0 голосов
/ 02 марта 2011

Всякий раз, когда вы получаете сбой, вам нужно распечатать стека вызовов.Это показывает, что именно не так.

В этом случае, может быть, вы не вводите номер?Всякий раз, когда вы анализируете строку, обязательно сделайте попытку / перехват вокруг Integer.parseInt, иначе пользователь может завершить работу вашего приложения, введя что-то, не являющееся числом.

Единственные другие вариантыбудь то, что R.id.textfield не является EditText, или в этом конкретном макете нет поля R.id.text.Если бы вы напечатали трассировку стека, мы бы точно знали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...