我想在编辑文本中添加验证:
我该怎么做?
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);
}
答案 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)
为什么不在xml中设置inputType="number"
的{{1}}?如果您仍然希望动态检查,请查看此post。
TextUtils.equals() - http://developer.android.com/reference/android/text/TextUtils.html#equals(java.lang.CharSequence,java.lang.CharSequence)
干杯! :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
}