Android中的EditText数字验证

时间:2015-12-17 03:55:33

标签: android

我有三个EditText控件,我需要确保每个都是正确的数字输入。

第一个必须是0到23之间的数字

第二个必须是0到59之间的数字

第三个必须是0到1500之间的数字

我看到有人发表了关于使用setError进行简单的EditText验证的帖子,例如:

EditText firstName = (EditText)findViewById(R.id.first_name);
if (firstName.getText().toString().length() == 0) 
     firstName.setError("First name is required!");

所以有一种简单的方法可以像上面那样做,但要确保一个数字不是&t; t> 23,59或1500(个别)?

4 个答案:

答案 0 :(得分:0)

Integer.parseInt(String s)可以将字符串转换为整数。然后,您使用if, else对其进行验证。

但是,输入可能不是整数,您必须在android:numeric="integer"文件的<EditText />标记中设置.xml。 注意这一点,如果输入字符串不是整数,Integer.parseInt()将抛出异常,这将导致崩溃。

答案 1 :(得分:0)

您希望确保执行某些错误检查,因为该值来自用户。尝试这样的事情:

EditText firstText = (EditText) findViewById(R.id.first);
try
{
    long firstVal = Long.parseLong(firstText.getText());
    if (firstVal < 0 || firstVal > 23)
        firstText.setError("The value must be between 0 and 23!");
}
catch (NumberFormatException e)
{
    firstText.setError("Enter an integer value!");
} 

// very similar for your remaining cases

答案 2 :(得分:0)

{{1}}

答案 3 :(得分:0)

EditText firstEditText = (EditText)findViewById(R.id.first_edit_text);
EditText secondEditText = (EditText)findViewById(R.id.second_edit_text);
EditText thirdEditText= (EditText)findViewById(R.id.third_edit_text);
int value;

value = Integer.parseInt(firstEditText .getText().toString());
if (! value > 0 && value < 23) 
     firstEditText.setError("Error");

value = Integer.parseInt(secondEditText .getText().toString());
if (! value > 0 && value < 59) 
     secondEditText.setError("Error");

value = Integer.parseInt(thirdEditText.getText().toString());
if (! value > 0 && value < 1500) 
     thirdEditText.setError("Error");