`
huihui920823
  • 浏览: 36897 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

Android非空格式验证框架Validation的使用---第三方库学习笔记(四)

 
阅读更多

Validation简介:

这是一个简单的函数库,使用注释语法来验证用户输入的表单信息。你仅需编写几行代码就可以实现一些表单验证功能,且显示的所有视图都将反馈给用户。它还带有一个可扩展的在线验证选项,这样你就可以为定制试图编写自己的验证信息及适配器了。

Validation的特点:

  • Required (必填)
  • NotBlank (非空数据)
  • Digits (仅数字)
  • Email (电子邮件)
  • 2选一必填项验证
  • 重复密码验证
  • HTTPURL (Http URL)
  • 手机号码格式验证等

基本用法:

  1. 先创建个表单Form类用来装控件
  2. 然后创建Validate类,将被验证(如:EditText)控件传入
  3. 将这个Validate类addValidator加入(如:非空类型NotEmptyVerifior)类型验证类
  4. Form表单addValidates这个Validate类即可
  5. 最后调用form.validate()验证即可,返回true表示验证通过。

代码演示:
使用 Validation 进行基本的非空验证、2选1必填验证、邮箱、重复密码、网址、手机号验证

package com.example.validationtest;

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.EmailValidator;
import com.throrinstudio.android.common.libs.validator.validator.NotEmptyValidator;
import com.throrinstudio.android.common.libs.validator.validator.UrlValidator;

/**
 * 1.非空验证
 * 2.二选一验证
 * 3.邮件验证
 * 4.重复密码确认
 * 5.网址验证
 * 
 * @author Administrator
 * 
 */
public class MainActivity extends Activity {

    private EditText et_notEmpty, et_or1, et_or2, et_email, et_password1,
            et_password2, et_url;
    private Button bt_ok;
    private Form form;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        initView();
        setListener();
        validateForm();

    }

    //格式验证
    private void validateForm() {
        // 1. 先创建个表单Form类用来装控件
        form = new Form();

        // 非空验证
        // 2. 然后创建Validate类,将被验证控件传入
        Validate notEmptyValidate = new Validate(et_notEmpty);
        // 3. 将这个Validate类addValidator加入(如:非空类型NotEmptyVerifior)类型验证类
        NotEmptyValidator notEmpty = new NotEmptyValidator(this);
        notEmptyValidate.addValidator(notEmpty);
        // 二选一
        OrTwoRequiredValidate orTwoRequiredValidate = new OrTwoRequiredValidate(
                et_or1, et_or2);
        // 邮件验证
        Validate emailValidate = new Validate(et_email);
        EmailValidator emailValidator = new EmailValidator(this);
        emailValidator.setDomainName("qq\\.com");// 设置邮件规则:只能是QQ邮箱
        emailValidate.addValidator(emailValidator);
        // 重复密码确认
        ConfirmValidate confirmValidate = new ConfirmValidate(et_password1,
                et_password2);
        // 网址
        Validate urlValidate = new Validate(et_url);
        UrlValidator urlValidator = new UrlValidator(this);
        urlValidate.addValidator(urlValidator);

        // 4. Form表单addValidates这个Validate类即可
        form.addValidates(notEmptyValidate);
        form.addValidates(orTwoRequiredValidate);
        form.addValidates(emailValidate);
        form.addValidates(confirmValidate);
        form.addValidates(urlValidate);

    }

    private void setListener() {
        bt_ok.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // 5. 最后调用form.validate()验证即可,返回true表示验证通过。
                boolean flag = form.validate();
                if(flag){
                    Toast.makeText(MainActivity.this, "验证成功!", Toast.LENGTH_LONG).show();
                }else{
                    Toast.makeText(MainActivity.this, "验证失败", Toast.LENGTH_LONG).show();
                }
            }
        });

    }

    private void initView() {
        et_notEmpty = (EditText) findViewById(R.id.et_notempty);
        et_or1 = (EditText) findViewById(R.id.et_or1);
        et_or2 = (EditText) findViewById(R.id.et_or2);
        et_email = (EditText) findViewById(R.id.et_email);
        et_password1 = (EditText) findViewById(R.id.et_password1);
        et_password2 = (EditText) findViewById(R.id.et_password2);
        et_url = (EditText) findViewById(R.id.et_url);
        bt_ok = (Button) findViewById(R.id.bt_ok);

    }
}

运行结果:
这里写图片描述

非空验证框架的依赖库下载:
点击下载

<script type="text/javascript"> $(function () { $('pre.prettyprint code').each(function () { var lines = $(this).text().split('\n').length; var $numbering = $('<ul/>').addClass('pre-numbering').hide(); $(this).addClass('has-numbering').parent().append($numbering); for (i = 1; i <= lines; i++) { $numbering.append($('<li/>').text(i)); }; $numbering.fadeIn(1700); }); }); </script>

版权声明:本文为博主原创文章,未经博主允许不得转载。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics