一.Android Validation 的基本功能简介
1.Validation的简介:
这是一个简单的函数库,使用注释语法来验证用户输入的表单信息。你仅需编写几行代码就可以实现一些表单验证功能,且显示的所有视图都将反馈给用户。它还带有一个可扩展的在线验证选项,这样你就可以为定制视图编写自己的验证信息及适配器了
2.Validation的功能:
- Required (必填)
- NotBlank (非空数据)
- Digits (仅数字)
- Email (电子邮件)
- 2选一必填项验证
- 重复密码验证
- HTTPURL (Http URL)
- 手机号码格式验证等
二.Android Validation 的基本用法
1.基本用法:
先创建个表单Form类用来装控件
然后创建Validate类,将被验证EditText控件传入
将这个Validate类addValidator加入非空类型NotEmptyVerifior
Form表单addValidates这个Validate类即可
最后调用form.validate()验证即可,返回true表示验证通过。
2.代码演示:
使用 Validation 进行基本的非空验证、2选1必填验证、邮箱、重复密码、网址、手机号验证
布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin" >
<EditText
android:id="@+id/et_tel"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:singleLine="true" />
<EditText
android:id="@+id/et_password1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />
<EditText
android:id="@+id/et_password2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:inputType="textPassword" />
<EditText
android:id="@+id/et_or1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="二选一:男" />
<EditText
android:id="@+id/et_or2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:hint="二选一:女" />
<Button
android:id="@+id/btn_ok"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="注册" />
</LinearLayout>
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;
import com.throrinstudio.android.common.libs.validator.Form;
import com.throrinstudio.android.common.libs.validator.Validate;
import com.throrinstudio.android.common.libs.validator.validate.ConfirmValidate;
import com.throrinstudio.android.common.libs.validator.validate.OrTwoRequiredValidate;
import com.throrinstudio.android.common.libs.validator.validator.NotEmptyValidator;
import com.throrinstudio.android.common.libs.validator.validator.PhoneValidator;
public class MainActivity extends Activity {
private EditText et_tel, et_password1, et_password2, et_or1, et_or2;
private Button btn_ok;
private Form form;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
initValidate();
}
private void initValidate() {
form = new Form();
Validate telValidate = new Validate(et_tel);
telValidate.addValidator(new NotEmptyValidator(this));// 手机号非空
telValidate.addValidator(new PhoneValidator(this));// 手机号格式验证
ConfirmValidate confirmValidate = new ConfirmValidate(et_password1,
et_password2);// 重复密码验证
confirmValidate.addValidator(new NotEmptyValidator(this));// 密码非空验证
OrTwoRequiredValidate orValidate = new OrTwoRequiredValidate(et_or1,
et_or2);// 二选一必填项验证
form.addValidates(orValidate);
form.addValidates(confirmValidate);
form.addValidates(telValidate);
}
private void initView() {
et_or1 = (EditText) this.findViewById(R.id.et_or1);
et_or2 = (EditText) this.findViewById(R.id.et_or2);
et_password1 = (EditText) this.findViewById(R.id.et_password1);
et_password2 = (EditText) this.findViewById(R.id.et_password2);
et_tel = (EditText) this.findViewById(R.id.et_tel);
btn_ok = (Button) this.findViewById(R.id.btn_ok);
btn_ok.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
boolean isOk = form.validate();
if (isOk) {
Toast.makeText(MainActivity.this, "验证通过",
Toast.LENGTH_SHORT).show();
} else {
Toast.makeText(MainActivity.this, "验证不通过",
Toast.LENGTH_SHORT).show();
}
}
});
}
}