Приложение перестало работать - PullRequest
1 голос
/ 05 сентября 2011

Я делаю приложение для Android в Java .. И в основном у меня есть проблема .. У меня есть кнопка, которая удаляет последний символ в строке .. И эта кнопка будет использоваться много раз, и если пользователь нажимает Кнопка пока строка пуста, приложение получает сообщение об ошибке и закрывается .. И я хочу как-то это предотвратить ..

Это текущий код для onClickListener ..

back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
                value = value.substring(0, value.length() - 1);
                numbersArea.setText(value);
        }

Есть идеи, как мне это сделать? Так как у меня нет идей после попытки всю вчерашнюю ночь.

Ответы [ 2 ]

3 голосов
/ 05 сентября 2011

До substring, убедитесь, что длина строки> 0.

if (!value.isEmpty()) {
    value = value.substring(0, value.length() - 1);
    numbersArea.setText(value);
}

Если вы не сделаете эту проверку, в какой-то момент строка будет иметь нулевую длину и substring() выдаст IndexOutOfBoundsException.

1 голос
/ 05 сентября 2011

Сделайте так, чтобы ваш слушатель был таким:

back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

                if(!value.equals("") && value != null) {
                   value = value.substring(0, value.length() - 1);
                   numbersArea.setText(value);
                }
        }

По сути, он проверяет, является ли строка пустой и отличается от нуля, если нет, она входит в оператор if.

Пожалуйста, дайте мне знать, если у вас есть еще сомнения.

Спасибо.

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