我有三个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(个别)?
答案 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");