0

我有这个代码:

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

当 EditText 中有数字时效果很好,但是当它为空或有文本等时它会 FC 我的应用程序。

我怎样才能确保 int_value 有/是一个数字?我也尝试了 parseInt 但结果相同。

4

5 回答 5

4

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

于 2012-06-12T11:16:19.590 回答
3
  try {             
Integer int_value  = Integer.parseInt(value.getText().toString());
            } catch (NumberFormatException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
        }
于 2012-06-12T11:16:45.090 回答
1

当一个无法解析的字符串作为Integer's 的输入时valueOf,它会抛出一个NumberFormatException. 简单地用一个块包围它try catch来处理这种情况:

Integer int_value = null;

try {
    int_value = Integer.valueOf(value.getText().toString());
} catch (NumberFormatException e) {
    // here you can handle the case where the text wasn't an integer
}

// carry on...
于 2012-06-12T11:20:55.457 回答
0

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

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

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

}
于 2012-06-12T11:23:55.373 回答
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"
于 2012-06-12T11:29:09.667 回答