我有这段代码:
EditText value = ( EditText )findViewById( R.id.editbox );
Integer int_value = Integer.valueOf( value.getText().toString() );
当EditText中有一个数字时,它很有效,但当它是空的或有文本等时,它就是我的应用程序。
如何确保int_value具有/是数字?我也尝试过parseInt但结果相同。
答案 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"