使用saripaar对android输入控件进行快速验证

saripaar是个android的第三方快速校验,使用注解快速添加验证规则。
public class LoginActivity extends Activity  implements 

ValidationListener

   {
   @Required(order = 1, message="用户名不能为空")
    private EditText tbxUser=null;
    @Required(order = 2,message="密码不能为空")
    private EditText tbxPsw =null;
    private Validator validator;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        if (android.os.Build.VERSION.SDK_INT > 9) {
            StrictMode.ThreadPolicy policy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
            StrictMode.setThreadPolicy(policy);
        }
        //初始化监听
        initListener();
        //实例化校验类库
        validator = new Validator(this); validator.setValidationListener(this);
        }

    /**
     * 初始化监听
     */
    private void initListener() {
        
        Button btn = (Button)this.findViewById(R.id.btnLogin);
        tbxUser=(EditText)this.findViewById(R.id.txtUser);
        tbxPsw=(EditText)this.findViewById(R.id.txtPassword);
        
        btn.setOnClickListener(new OnClickListener(){
            public void onClick(View v){
                validator.validate();
            }


        });
    }
    private void login() {
                 Dialog.showAlert(“Logining”, this );
             };
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

    @Override
    public void preValidation() {
        // TODO Auto-generated method stub
        
    }

    @Override
    public void onSuccess() {
        // TODO Auto-generated method stub
        login();
        }
    @Override
    public void onFailure(View failedView, Rule<?> failedRule) {
        // TODO Auto-generated method stub
        String message = failedRule.getFailureMessage();
        if (failedView instanceof EditText) {
         failedView.requestFocus();
         ((EditText) failedView).setError(message);
         } 
         else { Dialog.showToast(message,this);
      }
   }
 @Override
    public void onValidationCancelled() {
        // TODO Auto-generated method stub
        
    }

}

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏Android工程师的修仙之旅

自己动手写Android插件化框架

本文旨在通过两个实例直观的说明插件的实现原理以加深对插件内开发的理解,因此不会深入探讨背景和原理,代码也尽量专注于核心逻辑。

1472
来自专栏Keegan小钢

Android项目重构之路:实现篇(三)

在这个Demo里,只有三个页面:登录页、注册页、券列表页。在这里,也会遵循界面篇提到的三个基本原则:规范性、单一性、简洁性。 首先,界面层需要调用核心层的Act...

522
来自专栏Android先生

Activity、View、Window的理解一篇文章就够了

要了解这三者之间的关系,我们带着问题通过分析源码一步一步来揭开它们的神秘面纱! 文章有点长,首先要理解Activity、View、Window,我提出了一些问题...

791
来自专栏向治洪

android drawable

android.graphics.drawable.Drawable是个虚类。 它的直接子类有 BitmapDrawable, ClipDrawable, Co...

17510
来自专栏向治洪

iOS 轻量级存储

NSUserDefaults简介 在Android和ios都提供了本地轻量级数据存储,底层实现都是基于key-value的方式。Android里面的叫Share...

2078
来自专栏Android开发指南

2.抽取代码(BaseActivity)

3438
来自专栏前端架构

activety生命周期与开车的瞎想!一张图弄懂Activety

Activity其实是继承了ApplicationContext这个类,我们可以重写以下方法,如下代码:

652
来自专栏Android开发指南

4.TableLayout、回调接口

32412
来自专栏吴小龙同學

Android MVP+Retrofit+RxJava实践小结

关于MVP、Retrofit、RxJava,之前已经分别做了分享,如果您还没有阅读过,可以猛戳: 1、Android MVP 实例 2、Android Retr...

3608
来自专栏Android 开发学习

ListView的一个典型crash cannot be cast to android.widget.AbsListView$LayoutParams1. 背景2. 为什么会出现crash3.

2243

扫码关注云+社区