Java 可编辑到字符串崩溃

Java 可编辑到字符串崩溃,java,android,crash,android-edittext,Java,Android,Crash,Android Edittext,我编写了这段代码,当我试图将可编辑的值转换为整数时,程序崩溃,因为文本类型为decimal,我怀疑应用程序必须将可编辑更改为字符串,因为编辑文本在编辑文本后为空,程序崩溃 EditText Y = (EditText) findViewById(R.id.y); Y.addTextChangedListener(new TextWatcher(){ @Override public void afterTextChanged(Edi

我编写了这段代码,当我试图将可编辑的值转换为整数时,程序崩溃,因为文本类型为decimal,我怀疑应用程序必须将可编辑更改为字符串,因为编辑文本在编辑文本后为空,程序崩溃

EditText Y = (EditText) findViewById(R.id.y);
        Y.addTextChangedListener(new TextWatcher(){
            @Override
            public void afterTextChanged(Editable s) {
                if(s != null){
                    int Yvalue = Integer.parseInt(s.toString());
                }
            }

在我看来,将字符串解析为整数时更可能出现NumberFormatException。尝试将其包含在该异常的Try/catch中

 try {
   Yvalue = Integer.parseInt(number);
 } catch (NumberFormatException e) {
   Yvalue = defaultVal; // or do whatever necessary
 }

尝试将字符串的值解析为float,并将其放入float变量中


float Yvalue=float.parseFloat(s.toString())

假设您只需要整数,请尝试以下操作:

@Override
public void afterTextChanged(Editable s) {

  if (s.length() == 0) {
    // complain about no input
  } else {
    try {
      int yValue = Integer.parseInt(s.toString());

      // ...

    } catch (NumberFormatException e) {
      // complain about invalid input
    }
  }
}

我不是Android开发人员,但如果没有一种方法可以在输入字段中添加一个掩码来阻止输入除整数以外的任何内容,我会感到惊讶。

Y
为null或
Integer.parseInt
失败是否可以使用try-catch?尝试{int Yvalue=Integer.parseInt(s);}catch(异常e){//无法解析}
Integer.parseInt()
EditText
中提供小数点时抛出一个
NumberFormatException
。您的问题不清楚。您希望能够处理带小数点的数字(即,将其读取为浮点数)还是希望更好地处理错误情况?显然,当编辑文本无法转换为浮点数时,此功能将非常有效。除非尝试,否则应用程序将崩溃。谢谢