前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android 表单验证框架:AValidations

Android 表单验证框架:AValidations

作者头像
非著名程序员
发布2018-02-02 11:48:18
7190
发布2018-02-02 11:48:18
举报
文章被收录于专栏:非著名程序员非著名程序员

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

使用方法:

1.下载zip或者克隆AValidations项目

2.导入Eclipse,右键工程->preference->Android->library->Add,选择AValidations工程加入后 apply应用

3.继承ValidationExecutor写出自己的校验器:

代码语言:js
复制
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进行校验:

代码语言:js
复制
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,如:

代码语言:js
复制
<?xml version="1.0" encoding="utf-8"?>

<selector xmlns:android="http://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>
本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2015-11-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 非著名程序员 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档