首页 > 程序开发 > 移动开发 > Android >

Android非空格式验证框架Validation的介绍与使用

2017-10-06

Android非空格式验证框架Validation的介绍与使用。android中判断控件是否为空的地方非常之多,比如登录注册,只要是需要填写东西的地方基本上都需要判空。难度不大,但是代码相对冗杂,如果集成框架的话就相对简单多了。

android中判断控件是否为空的地方非常之多,比如登录注册,只要是需要填写东西的地方基本上都需要判空。

难度不大,但是代码相对冗杂,如果集成框架的话就相对简单多了。

\

1.添加依赖

[java]view plaincopy

compile'com.mobsandgeeks:android-saripaar:2.0.3'[java]view plaincopy

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical"

android:padding="10dp">

android:id="@+id/et1"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="请输入姓名"/>

......

android:id="@+id/et6"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:hint="请输入姓名"/>

android:text="Button"

android:layout_width="match_parent"

android:layout_height="wrap_content"

android:id="@+id/button"/>

3.获取对象并设置相应判断类型[java]view plaincopy

@BindView(R.id.button)

Buttonbutton;

@BindView(R.id.et1)

@NotEmpty(messageResId=R.string.errorMessage)//类型

@Order(1)//第几个

EditTextet1;

@BindView(R.id.et2)

@NotEmpty(messageResId=R.string.errorMessage)

@Order(2)

EditTextet2;[java]view plaincopy

ValidationDemo

不能为空

4.onCreate中初始化

[java]view plaincopy

validator=newValidator(this);

validator.setValidationListener(this);

两个监听方法

[java]view plaincopy

@Override

publicvoidonValidationSucceeded(){//不为空的时候执行

//dosomethings

//sendSubmit();

}

@Override

publicvoidonValidationFailed(Listerrors){//为空的时候执行

for(ValidationErrorerror:errors){

Viewview=error.getView();

Stringmessage=error.getCollatedErrorMessage(this);

if(viewinstanceofEditText){

((EditText)view).setError(message);

}

}

}

5.调用

[java]view plaincopy

@Override

publicvoidonClick(Viewview){

switch(view.getId()){

caseR.id.button:

validator.validate();

break;

}

}

6.扩展(非空、邮箱等)

NotEmpty

@NotEmpty(messageId = R.string.validation_name, order = 1)

private EditText mNameEditText;

MaxLength

MinLength

@MinLength(value = 1, messageId = R.string.validation_participants, order = 2)

private EditText mNameEditText;

MaxValue

MinValue

@MinValue(value = 2L, messageId = R.string.validation_name_length)

private EditText mEditNumberOfParticipants;

MaxNumberValue

MinNumberValue

@MinNumberValue(value = "5.5", messageId = R.string.validation_name_length)

private EditText mEditPotentialOfHydrogen;

RegExp

@RegExp(value = EMAIL, messageId = R.string.validation_valid_email)

private EditText mEditEmail;

@RegExp(value = "^[0-9]+$", messageId = R.string.validation_valid_count)

private EditText mEditCount;

DateInFuture

@DateInFuture(messageId = R.string.validation_date)

private TextView mTxtDate;

DateNoWeekend

@DateNoWeekend(messageId = R.string.validation_date_weekend)

private TextView mTxtDate;

Custom

@Custom(value = MyVeryOwnValidator.class, messageId = R.string.validation_custom)

private EditText mNameEditText;

Demo地址:https://github.com/yechaoa/ValidationDemo

github:https://github.com/ragunathjawahar/android-saripaar/


相关文章
最新文章
热点推荐