白羽
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
您输入的评论内容中包含违禁敏感词
我知道了

请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式AI+学习就业服务平台 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号