Android 更改ontext时的float.parsefloat numberformatexception
这是我的一段代码,其中我正在动态检查edittext输入Android 更改ontext时的float.parsefloat numberformatexception,android,android-edittext,numberformatexception,Android,Android Edittext,Numberformatexception,这是我的一段代码,其中我正在动态检查edittext输入 al_e.addTextChangedListener(new TextWatcher() { @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // TODO Auto-generated method stub } @
al_e.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
// TODO Auto-generated method stub
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
String al_s=s.toString().trim();
if((Float.parseFloat(al_s)<15)|(Float.parseFloat(al_s)>50)|al_s.equals("")){
invalid=1;
al_s="";
//Toast.makeText(getApplicationContext(),"Please enter a valid input\nRange [15mm,50mm]", Toast.LENGTH_SHORT).show();
al_e.setError("Please enter a valid input\nRange [15mm,50mm]");
}else{
al=Float.parseFloat(al_s);
}
}
});
在论坛上搜索类似的问题,但力不从心。关于这方面的任何帮助。我是android开发的初学者你不能在空字符串上使用parseFloat。这就是为什么您会收到NumberFormatException 改为执行以下操作
try {
float num = Float.parseFloat(al_s);
if (num < 15 || num > 50) {
// set invalid...
} else {
al = num;
}
} catch (NumberFormatException e) {
// set invalid...
}
试试看{
float num=float.parseFloat(al_s);
如果(数值<15 | |数值>50){
//设置无效。。。
}否则{
al=num;
}
}捕获(数字格式){
//设置无效。。。
}
还要注意的是,即使您执行al_.s.equals(“”
)检查空字符串,它也需要是条件的第一个测试,而不是最后一个测试。否则,将在测试之前解析字符串,导致出现NumberFormatException
try {
float num = Float.parseFloat(al_s);
if (num < 15 || num > 50) {
// set invalid...
} else {
al = num;
}
} catch (NumberFormatException e) {
// set invalid...
}