如何检查edittext

时间:2016-05-10 07:38:00

标签: android

我想在编辑文本中添加验证:

  • 检查名称是否不是数字
  • 检查电话号码是否为号码
  • 检查密码和密码2是否等于

我该怎么做?

if (name.isEmpty() || name.length() < 3 ||  ............) {
     et_name.setError("enter a valid name");
     valid = false;
} else {
     et_nom.setError(null);
}
if (tel.isEmpty() || ..........) {
     et_tel.setError("enter a valid tel");
     valid = false;
} else {
     et_tel.setError(null);
}
if (password.isEmpty() || password2.isEmpty() || ..........) {
     et_password.setError("enter a valid password");
     valid = false;
} else {
     et_password.setError(null);
}

3 个答案:

答案 0 :(得分:2)

...奥基

首先:

对于您不希望允许用户输入数字的名称,您可以执行的操作是为您的名称EditText添加两个属性。

android:digits="abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ "
android:inputType="text"

这将允许用户仅输入字母和空格。因此无需以编程方式进行验证。

第二名:

电话号码相同。您必须将android:inputType="number"添加到电话EditText。因此用户只能输入数字。

<强>第三

如果验证您的EditText是否为空,则可以执行以下操作。

if (name.getText().toString().equals("")) {
    Toast.makeText(getApplicationContext(),
                    "Please enter your name", Toast.LENGTH_SHORT).show();
}

<强>四

要检查密码相等性,您可以执行以下操作。

if (!password1.getText().toString().equals(password2.getText().toString())) {
    Toast.makeText(getApplicationContext(),
                    "Please enter your name", Toast.LENGTH_SHORT).show();
}

现在希望您了解整个过程。对于您的情况,请参阅以下代码。

if (name.getText().toString().equals("") || name.length() < 3 ||) {
        et_name.setError("enter a valid name");
        valid = false;
} 
if (tel.getText().toString().equals("")) {
        et_tel.setError("enter a valid tel");
        valid = false;
} 
if (password.getText().toString().equals("") || password2.getText().toString().equals("") || !password.getText().toString().equals(password2.getText().toString())) {
        et_password.setError("enter a valid password");
        valid = false;
}

快乐的编码。

答案 1 :(得分:1)

  1. 为什么不在xml中设置inputType="number"的{​​{1}}?如果您仍然希望动态检查,请查看此post

  2. TextUtils.equals() - http://developer.android.com/reference/android/text/TextUtils.html#equals(java.lang.CharSequence,java.lang.CharSequence)

  3. 干杯! :d

答案 2 :(得分:0)

尝试使用android.text.Utils.TextUtils类(android SDK的一部分)

请参阅inputType

<强> 1。检查名称是否为数字

if(TextUtils.isDigitsOnly(str)) {
  //number
}

<强> 2。检查名称是否不是数字

if(!TextUtils.isDigitsOnly(str)) {
  //number
}

第3。检查两个密码1和密码2是否相等

if(!TextUtils.isEmpty(password1) && !TextUtils.isEmpty(password2) && !password1.equals(password2)) {
  //number
}