Android 更改ontext时的float.parsefloat numberformatexception

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 } @

这是我的一段代码,其中我正在动态检查edittext输入

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...
}