Intereting Posts
Исключение json в приложении kotlin Как буферизировать бесконечный прослушиватель прокрутки Как сделать сумму элементов для нескольких списков в kotlin Android Kotlin как установить флажок в режиме просмотра нескольких вариантов Сравнение ссылок и стоимости Почему тексты не меняются в действии? Делегация класса в Котлине Kotlin – Расширение для финального класса Почему я могу использовать имя выражения лямбда, но не имя функции? Kotlin прямой доступ к Button в android.support.v4.app.Fragment ссылка на нулевой объект Ошибка: выполнение выполнено для задачи ': app: compileDebugKotlin'. > Ошибка компиляции. Подробнее см. Журнал Kotlin: Карты сравнения бросаются с ошибкой, даже если Карты равны Не удается написать основной конструктор класса Activity в Kotlin в Android Передача массива ByteBuffer из Java / Kotlin в C ++ / V8 приводит к неправильным данным В чем разница при добавлении частного модификатора к аргументам в конструкторе Kotlin?

Проверка значений параметров EditText вызывает сбой

У меня есть EditText (inputValue), который принимает numberDecimal формат, который мне нужно проверить. Функция проверки называется:

buttonCalculate.setOnClickListener { pickFunction() } 

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

  fun pickFunction() { val s: String = inputValue.getText().toString().trim() val d = inputValue.getText().toString().toDouble() if(s.isNullOrEmpty()) { Toast.makeText(applicationContext, "Blank value entered", Toast.LENGTH_SHORT).show() return } if( d <= 0) { Toast.makeText(applicationContext, "Zero value entered", Toast.LENGTH_SHORT).show() return } // go do something with valid value } 

Solutions Collecting From Web of "Проверка значений параметров EditText вызывает сбой"

нажатие кнопки Edittext потому что ваш Edittext не имеет никакого значения, и вы вызываете .trim() и .toDouble() для ссылки на нулевой объект. Перед вызовом методов обрезки и todouble проверьте нулевое состояние проверки.

Используйте toDoubleOrNull () вместо toDouble() или оберните эту строку в try-catch для обработки NumberFormatException .