我有一个接受numberDecimal格式的EditText(inputValue),我需要验证它。验证函数由:
调用 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
}
如果此EditText保留为空白,则每次单击按钮后都会立即崩溃。如果我用零填写表单,然后单击按钮,验证按预期工作。
sed 's/[^[:space:]=]*=//g' file > newfile
答案 0 :(得分:1)
按钮点击会让您崩溃,因为Edittext
没有任何价值,您在空对象引用上调用.trim()
和.toDouble()
。请在调用trim和todouble方法之前检查空检查条件。
答案 1 :(得分:0)
使用toDoubleOrNull()代替toDouble()
或将try-catch
中的该行换行以处理NumberFormatException
。