Android编程之AValidations :超级容易扩展的android表单验证的小框架
白羽 2018-07-24 来源 :网络 阅读 1266 评论 0

摘要:本文将带你了解Android编程之AValidations :超级容易扩展的android表单验证的小框架,希望本文对大家学Android有所帮助

AValidations 是 一个免费的、开源的、简易的、遵循Apache Licence 2.0开源协议发布,超级容易扩展的android表单验证的小框架

 
使用方法:
1.下载zip或者克隆AValidations项目
2.导入Eclipse,右键工程->preference->Android->library->Add,选择AValidations工程加入后 apply应用
3.继承ValidationExecutor写出自己的校验器:




  
  
   
   Java
   
   public class UserNameValidation extends ValidationExecutor {
    public boolean doValidate(Context context, String text) {

        String regex = "^[a-zA-Z](?=.*?[a-zA-Z])(?=.*?[0-9])[a-zA-Z0-9_]{7,11}$";
        boolean result = Pattern.compile(regex).matcher(text).find();
        if (!result) {
            Toast.makeText(context, context.getString(R.string.e_username_hint), Toast.LENGTH_SHORT).show();
            return false;
        }
        return true;
    }
}
   
    
     
    
     123456789101112
    
      public class UserNameValidation extends ValidationExecutor {    public boolean doValidate(Context context, String text) {         String regex = "^[a-zA-Z](?=.*?[a-zA-Z])(?=.*?[0-9])[a-zA-Z0-9_]{7,11}$";        boolean result = Pattern.compile(regex).matcher(text).find();        if (!result) {            Toast.makeText(context, context.getString(R.string.e_username_hint), Toast.LENGTH_SHORT).show();            return false;        }        return true;    }}
     
    
   
  




4.使用EditTextValidator进行校验:




  
  
   
   Java
   
   public class LoginActivity extends Activity implements OnClickListener{
    private EditText usernameEditText;
    private EditText passwordEditText;
    private Button loginButton;
    private EditTextValidator editTextValidator;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_login);

        usernameEditText = (EditText) findViewById(R.id.login_username_edittext);
        passwordEditText = (EditText) findViewById(R.id.login_password_edittext);
        loginButton = (Button) findViewById(R.id.login_button);

        loginButton.setOnClickListener(this);

        editTextValidator = new EditTextValidator(this)
            .setButton(loginButton)
            .add(new ValidationModel(usernameEditText,new UserNameValidation()))
            .add(new ValidationModel(passwordEditText,new PasswordValidation()))
            .execute();

    }

    @Override
        public void onClick(View v) {
            switch (v.getId()) {
            case R.id.login_button:

                if (editTextValidator.validate()) {
                    Toast.makeText(this, "通过校验", Toast.LENGTH_SHORT).show();
                }
                break;
            }
        }
   
    
     
    
    
      public class LoginActivity extends Activity implements OnClickListener{    private EditText usernameEditText;    private EditText passwordEditText;    private Button loginButton;    private EditTextValidator editTextValidator;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_login);         usernameEditText = (EditText) findViewById(R.id.login_username_edittext);        passwordEditText = (EditText) findViewById(R.id.login_password_edittext);        loginButton = (Button) findViewById(R.id.login_button);         loginButton.setOnClickListener(this);         editTextValidator = new EditTextValidator(this)            .setButton(loginButton)            .add(new ValidationModel(usernameEditText,new UserNameValidation()))            .add(new ValidationModel(passwordEditText,new PasswordValidation()))            .execute();     }     @Override        public void onClick(View v) {            switch (v.getId()) {            case R.id.login_button:                 if (editTextValidator.validate()) {                    Toast.makeText(this, "通过校验", Toast.LENGTH_SHORT).show();                }                break;            }        }
     
    
   
  




5.如果需要实现没有填写表单时表单提交按钮不可点击效果 需要设置setButton(view)和写Button背景的selector,如:

  
  
   
   Java
   
   <?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="//schemas.android.com/apk/res/android">

<item android:drawable="@drawable/red_btn_normal" android:state_focused="true" android:state_pressed="false"/>
<item android:drawable="@drawable/red_btn_selected" android:state_focused="true" android:state_pressed="true"/>
<item android:drawable="@drawable/red_btn_selected" android:state_focused="false" android:state_pressed="true"/>
<item android:drawable="@drawable/red_btn_disable" android:state_enabled="false"/>

<item android:drawable="@drawable/red_btn_normal"/>

</selector>
   
    
     
    
       
      <?xml version="1.0" encoding="utf-8"?><selector xmlns:android="//schemas.android.com/apk/res/android"> <item android:drawable="@drawable/red_btn_normal" android:state_focused="true" android:state_pressed="false"/><item android:drawable="@drawable/red_btn_selected" android:state_focused="true" android:state_pressed="true"/><item android:drawable="@drawable/red_btn_selected" android:state_focused="false" android:state_pressed="true"/><item android:drawable="@drawable/red_btn_disable" android:state_enabled="false"/> <item android:drawable="@drawable/red_btn_normal"/> </selector>
     
    
   
  



 

项目地址 //git.oschina.net/quanke/AValidations    

本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!

本文由 @白羽 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved