使用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 条评论
登录 后参与评论

相关文章

来自专栏Sorrower的专栏

界面无小事(七):使用代码动态增删布局

733
来自专栏李蔚蓬的专栏

揭露动画实现时的注意事项(附上bug-logcat)

昨天晚上开始学一下这个揭露动画,准备用在项目中做一个转场,啃完了API之后开始写个小demo,距离跑成功一步之遥的当儿,出了个bug,就怎么点击按钮都没用。

1201
来自专栏Keegan小钢

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

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

652
来自专栏Android开发指南

4.TableLayout、回调接口

33612
来自专栏james大数据架构

Android中Fragment+ViewPager的配合使用

官方推荐 ViewPager与Fragment一起使用,可以更加方便的管理每个Page的生命周期,这里有标准的适配器实现用于ViewPager和Fragment...

22510
来自专栏james大数据架构

Activity间中使用Intent传值

主页面用来输入一个值传入第二个页面显示,关闭第二个页面返回一个值 主页布局: <RelativeLayout xmlns:android="http://sch...

18710
来自专栏Spring相关

发送自定义广播

这时候启动两个程序,都可以接收到按钮发出的消息,这时候还是标准广播,如果要改为有序广播需要在BroadcastTest项目点击事件中更改:

982
来自专栏软件开发 -- 分享 互助 成长

Activity的生命周期

前言: 接触Android快两个礼拜了,虽然已开发了一个非常简单的app,但却还没有理清Activity的生命周期,自然对它里面的几种方法的含义没有彻底清楚的认...

1848
来自专栏Spring相关

SQLite的增删改查

782
来自专栏Android开发指南

7.首页、bitmaputils

3528

扫码关注云+社区