注册

Android 表单验证 AValidations

本帖最后由 天使牛 于 2015-2-22 18:54 编辑

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

屏幕快照 2015-04-23 上午11.30.03.png


使用方法:1.下载zip或者克隆AValidations项目
2.导入Eclipse,右键工程->preference->Android->library->Add,选择AValidations工程加入后 apply应用
3.继承ValidationExecutor写出自己的校验器:public cl** UserNameValidation extends ValidationExecutor {
public boolean doValidate(Context context, String text) {

String regex = "^(?=.*?)(?=.*?){7,11}quot;;
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进行校验:public cl** LoginActivity extends Activity implements OnClickListener{
** EditText usernameEditText;
** EditText p**wordEditText;
** Button loginButton;
** EditTextValidator editTextValidator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);

usernameEditText = (EditText) findViewById(R.id.login_username_edittext);
p**wordEditText = (EditText) findViewById(R.id.login_p**word_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(p**wordEditText,new P**wordValidation()))
.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,如:


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

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



已邀请:

要回复问题请先登录注册