Android 非空格式验证框架

本文介绍了Android上的Validation框架,该框架利用注解实现表单验证,提供必填、非空数据、数字、邮箱等验证功能,并支持自定义在线验证。通过简单几步,开发者可以轻松实现表单验证,包括创建Form类、Validate类,添加验证规则,并调用validate()方法进行验证。
摘要由CSDN通过智能技术生成

Validation的简介

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


Validation的功能

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

基本用法

  • 先创建个表单Form类用来装控件
Form form = new Form();
  • 然后创建Validate类,将被验证EditText控件传入
Validate validate = new Validate(editText);
  • 将这个Validate类addValidator加入非空类型NotEmptyVerifior, 这里以非空验证进行举例
NotEmptyValidator noEmpty = new NotEmptyValidator(context);
validate.addValidator(noEmpty);
  • Form表单addValidates这个Validate类即可
form.addValidates(validate);
  • 最后调用form.validate()验证即可,返回true表示验证通过。
form.validate();

实验代码

public class MainActivity extends Activity {

    private EditText mail;
    private EditText password;
    private EditText confirmPassword;
    private Form form;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
        form = new Form();

        Validate mailValidate = new Validate(mail);
        EmailValidator emailV = new EmailValidator(this);
        mailValidate.addValidator(emailV);
        ConfirmValidate confirmV = new ConfirmValidate(password, confirmPassword);

        form.addValidates(mailValidate);
        form.addValidates(confirmV);

    }

    private void initView() {
        mail = (EditText) findViewById(R.id.mail);
        password = (EditText) findViewById(R.id.password);
        confirmPassword = (EditText) findViewById(R.id.password_confirm);
    }

    public void sureOf(View view){
        form.validate();
    }
}

xml界面比较简单,就是三个EditText和一个按钮,按钮用于点击验证输入格式是否正确,这里就不给出了,同时Library可以根据自己的喜好进行一定的自定义修改。一定要记得Library和主项目要在一个工作空间,比如都在D盘,不然导入Library时会出现红叉叉。

使用android studio 运行,下面是一个简单的文档,这个代码是一个demo 一、Activity的使用 1、SNActivity 框架最基本的activity,可调用$(SNManager)进行操作activity,具体用法请参考文档或代码 2、SNNavigationSlidingActivity 包含SNActivity的功能,继承于com.jeremyfeinstein.slidingmenu.lib.app.SlidingActivity 支持导航条和左滑视图的Activity 加载导航条: loadNavBar(int height,int background_color_id) loadNavBarResId(int height_id,int background_id) 加载左侧视图: /** * load left view * @param left_id left layout id * @param offset_value offset value * @param shadow_width_value shadow width value * @param shadow_drawable_id shadow drawable style * @param fade fade value */ loadLeft(int left_id, int offset_value, int shadow_width_value, int shadow_drawable_id, float fade) /** * load left view * @param left_id left layout id * @param offset_id offset id * @param shadow_width_id shadow width id * @param shadow_drawable_id shadow drawable id * @param fade fade value */ loadLeftResId(int left_id, int offset_id, int shadow_width_id, int shadow_drawable_id, float fade) 二、SNElement的使用 View的伪装对象,支持所有View的功能,详细功能可参考文档或代码 手动伪装:$.create $.id $.findView 注入伪装:$.setContent(view class or layout id,inject class); 获取原型:elem.toView(); 三、注入 1、视图注入 A、创建注入类,属性名称必须和layout中的id对应,如果不对应请加入标签@SNInjectView class DemoInject{ @SNInjectView(id=R.id.tvTest) public SNElement test; } B、实例化注入对象 DemoInject di=new DemoInject(); C、调用$.inject或者$.setContent注入 $.inject(di); D、注入成功后即可调用对象 String text=di.test.text(); 2、依赖注入 A、需要绑定注入对象,建议写到Application中的onCreate SNBindInjectManager.instance().bind(ITest.class, Test.class); B、与视图注入不同的是属性必须添加标签@SNIOC,注入的对象(Test)必须包含只有一个SNManager参数的构造函数,且必须实现注入者 public class Test implements ITest{ SNManager $; public Test(SNManager _$){ this.$=_$; }; } class DemoInject{ @SNIOC public ITest test; } C、调用$.inject或者$.setContent注入 同视图注入 D、注入成功后即可调用对象 di.test.xxx(); 四、fragment的使用 1、SNFragment 2、SNLazyFragment 五、控件的使用 1、SNFragmentScrollable 2、SNPercentLinearLayout、SNPercentRelativeLayout 3、SNScrollable 4、SNSlipNavigation 5、XList 6、slidingtab
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值