Android验证不是EditText中的数字

时间:2013-05-22 16:12:10

标签: android validation numbers android-edittext

mail_xml是这样的:

EditText android:inputType="numberDecimal|numberSigned`

onTextChanged在此和其他edittexts上实现并调用相对方法。

//and one method example:
if (editTextNumber.getText().toString().equals("") ||                
    editTextNumber.getText().toString().equals("-") ||  
    editTextNumber.getText().toString().equals(".")) {
//say its bad or reset interface so the user knows;

else {
//do stuff;
}

我应该创建一个类来进行验证并实例化它,然后使用if / else语句返回一个布尔值吗?

这很困难,因为-在用户输入时有效,.也是如此。但是.-崩溃了。我觉得上课最好吗?

我不记得java中的一个函数来执行此操作,除非api已更新且我还没有看到它。我已经创建了我需要的类,可以实例化它们调用它们的getter方法没问题。只是坚持基本的验证。

1 个答案:

答案 0 :(得分:0)

你可以简单地把演员阵容放在一个块try / catch中...... 这样,如果插入的文本不是数字,则会触发异常...... 例如:

if(editTextNumber.getText()!=null && !editTextNumber.getText().toString().equals("")){
try{
    // int value
    Integer.parseInt(editTextNumber.getText().toString());
    // double value
    Double.parseDouble(editTextNumber.getText().toString());
}catch(Exception e){
    //prints the exception that you got
    //if number format exception then your input is not a number
    e.printStackTrace();
}
}

希望它有所帮助...