Integer.valueOf(km)
может выдать исключение, если строка km
не может быть проанализирована как целое число.
Однако перенос ее в блок try { } catch()
не является подходом, который я бы рекомендовал.
Целью использования значения по умолчанию для метода getString()
в SharedPreferences
является то, что может быть значение по умолчанию, к которому можно вернуться, еслипредпочтение не существует.Поэтому лучший способ решить эту проблему состоит в том, чтобы изменить ваш settings.getString(...)
вызов так, чтобы он был таким:
km = settings.getString("km", "0");
Тогда при последующем вызове Integer.valueOf(km)
не будет пробела при сбое.1020 * Входная строка приходит из пустого текстового поля, где пользователь может ввести любое значение?Если это так, то в этот момент вы можете проверить значение, введенное пользователем.Проверяя ввод на ранней стадии, вам не нужно будет разбрасывать механизм проверки / валидации на другие области вашего кода.