如何确保我从EditText获得一个Integer

时间:2012-06-12 11:13:25

标签: android

我有这段代码:

EditText value = ( EditText )findViewById( R.id.editbox );
Integer int_value = Integer.valueOf( value.getText().toString() );

当EditText中有一个数字时,它很有效,但当它是空的或有文本等时,它就是我的应用程序。

如何确保int_value具有/是数字?我也尝试过parseInt但结果相同。

5 个答案:

答案 0 :(得分:4)

在xml文件的android:inputType="number"声明中添加EditText

答案 1 :(得分:3)

  try {             
Integer int_value  = Integer.parseInt(value.getText().toString());
            } catch (NumberFormatException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }

答案 2 :(得分:1)

当无法解析的字符串作为Integer的{​​{1}}的输入时,它会抛出valueOf。只需用NumberFormatException块包围它就可以处理这种情况:

try catch

答案 3 :(得分:0)

在xml中设置inputType =“number” 并检查代码中的空值

if(!"".equals(value.getText().trim()) && value.getText().trim()!= null) {

  //sure, input is not empty and is a number.

}

答案 4 :(得分:0)

试试这个,

editText.setOnFocusChangeListener(new OnFocusChangeListener(){
                @Override
                public void onFocusChange(View v,boolean hasFocus)
                {
                    //check for emptiness
                    if(editText.length()==0)
                    {
                        editText.setError(error_required);
                    }
                    else if(!numberValidation(editText.getText().toString()))
                    {
                        editText.setError("Only Numbers");
                    }
                }
            }
            );

在main.xml中添加

EditText tag, android:numeric="integer/number/decimal"