[![API](https://img.shields.io/badge/API-14%2B-brightgreen.svg?style=flat)](https://android-arsenal.com/api?level=14)
[![JCenter](https://api.bintray.com/packages/thyrlian/android-libraries/com.basgeekball.awesomevalidation/images/download.svg) ](https://bintray.com/thyrlian/android-libraries/com.basgeekball.awesomevalidation/_latestVersion)
[![Build Status](https://travis-ci.org/thyrlian/AwesomeValidation.svg?branch=master)](https://travis-ci.org/thyrlian/AwesomeValidation)
[![Codacy Badge](https://api.codacy.com/project/badge/grade/dfea4a7a16c34cab9b810829fc221e19)](https://www.codacy.com/app/thyrlian/AwesomeValidation)
[![Android Arsenal](https://img.shields.io/badge/Android%20Arsenal-AwesomeValidation-brightgreen.svg?style=flat)](http://android-arsenal.com/details/1/1605)
[![Android Weekly](https://img.shields.io/badge/Android%20Weekly-%23142-brightgreen.svg)](http://androidweekly.net/issues/issue-142)
[![Stories in Ready](https://badge.waffle.io/thyrlian/AwesomeValidation.png?label=ready&title=Ready)](https://waffle.io/thyrlian/AwesomeValidation)
#AwesomeValidation
##Introduction
Implement validation for Android within only 3 steps. Developers should focus on their awesome code, and let the library do the boilerplate. And what's more, this could help keep your layout file clean.
##Steps
1. Declare validation style;
2. Add validations;
3. Set a point when to trigger validation.
##Sample code
```java
// Step 1: designate a style
AwesomeValidation mAwesomeValidation = new AwesomeValidation(BASIC);
// or
AwesomeValidation mAwesomeValidation = new AwesomeValidation(COLORATION);
mAwesomeValidation.setColor(Color.YELLOW); // optional, default color is RED if not set
// or
AwesomeValidation mAwesomeValidation = new AwesomeValidation(UNDERLABEL);
mAwesomeValidation.setContext(this); // mandatory for UNDERLABEL style
// Step 2: add validations
// support regex string, java.util.regex.Pattern and Guava#Range
// you can pass resource or string
mAwesomeValidation.addValidation(activity, R.id.edt_name, "[a-zA-Z\\s]+", R.string.err_name);
mAwesomeValidation.addValidation(activity, R.id.edt_tel, RegexTemplate.TELEPHONE, R.string.err_tel);
mAwesomeValidation.addValidation(activity, R.id.edt_email, android.util.Patterns.EMAIL_ADDRESS, R.string.err_email);
mAwesomeValidation.addValidation(activity, R.id.edt_year, Range.closed(1900, Calendar.getInstance().get(Calendar.YEAR)), R.string.err_year);
mAwesomeValidation.addValidation(activity, R.id.edt_height, Range.closed(0.0f, 2.72f), R.string.err_height);
// or
mAwesomeValidation.addValidation(editText, "regex", "Error info");
// Step 3: set a trigger
findViewById(R.id.btn_done).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mAwesomeValidation.validate();
}
});
// Optional: remove validation failure information
findViewById(R.id.btn_clr).setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mAwesomeValidation.clear();
}
});
```
##Import as dependency
For Gradle it's so easy: just add below compile line to your module's build.gradle (it's available on JCenter).
```java
dependencies {
compile 'com.basgeekball:awesome-validation:1.3'
}
```
##Screenshots
<a href="https://cloud.githubusercontent.com/assets/352956/6310455/4d3c90c6-b957-11e4-8075-8fb7b63ea669.png" target="_blank"><img src="https://cloud.githubusercontent.com/assets/352956/6310455/4d3c90c6-b957-11e4-8075-8fb7b63ea669.png" height="600"></a>
<a href="https://cloud.githubusercontent.com/assets/352956/6310452/4d38f40c-b957-11e4-820e-b3b5cfd54837.png" target="_blank"><img src="https://cloud.githubusercontent.com/assets/352956/6310452/4d38f40c-b957-11e4-820e-b3b5cfd54837.png" height="600"></a>
<a href="https://cloud.githubusercontent.com/assets/352956/6310454/4d3a83d0-b957-11e4-911a-a62e76b8024c.png" target="_blank"><img src="https://cloud.githubusercontent.com/assets/352956/6310454/4d3a83d0-b957-11e4-911a-a62e76b8024c.png" height="600"></a>
<a href="https://cloud.githubusercontent.com/assets/352956/6311996/999f2fcc-b96c-11e4-948a-1e142f9bc04a.png" target="_blank"><img src="https://cloud.githubusercontent.com/assets/352956/6311996/999f2fcc-b96c-11e4-948a-1e142f9bc04a.png" height="600"></a>
##Release guide
* Update version number in *build.gradle*, *gradle.properties* and *README*
* Run `gradle clean build generateRelease` to generate release zip file
* Run `gradle bintrayUpload` to create a new version in bintray
* Upload release zip file manually to bintray, make sure to check '**Explode this archive**'
##License
Copyright (c) 2015 Jing Li. See the LICENSE file for license rights and limitations (MIT).
没有合适的资源?快使用搜索试试~ 我知道了~
Android之EditText表单验证框架Demo
共6614个文件
class:5500个
png:434个
xml:434个
5星 · 超过95%的资源 需积分: 50 9 下载量 93 浏览量
2016-09-01
18:07:44
上传
评论
收藏 30.37MB RAR 举报
温馨提示
Android之EditText表单验证框架,轻松实现复杂繁琐的表单验证
资源推荐
资源详情
资源评论
收起资源包目录
Android之EditText表单验证框架Demo (6614个子文件)
library-release.aar 212KB
MediaSessionCompat.aidl 787B
ParcelableVolumeInfo.aidl 689B
PlaybackStateCompat.aidl 688B
MediaMetadataCompat.aidl 680B
ResultReceiver.aidl 675B
RatingCompat.aidl 673B
resources-debug.ap_ 465KB
resources-debug-androidTest.ap_ 778B
demo-debug.apk 1.22MB
demo-debug-unaligned.apk 1.22MB
gradlew.bat 2KB
fileSnapshots.bin 383KB
fileHashes.bin 126KB
taskArtifacts.bin 43KB
localClassSetAnalysis.bin 25KB
localClassSetAnalysis.bin 24KB
fileSnapshotsToTreeSnapshotsIndex.bin 21KB
localJarClasspathSnapshot.bin 19KB
localJarClasspathSnapshot.bin 18KB
PublicSuffixPatterns.class 52KB
ViewPager.class 50KB
FragmentManagerImpl.class 45KB
Maps.class 44KB
DemoActivity.class 41KB
DemoActivity.class 41KB
LocalCache$Segment.class 39KB
AppCompatDelegateImplV7.class 38KB
SearchView.class 36KB
Toolbar.class 36KB
BackStackRecord.class 34KB
LocalCache.class 32KB
NestedScrollView.class 32KB
DrawerLayout.class 31KB
WindowDecorActionBar.class 30KB
Fragment.class 29KB
MenuBuilder.class 28KB
MapMakerInternalMap$Segment.class 27KB
SlidingPaneLayout.class 27KB
LinearLayoutCompat.class 25KB
Futures.class 25KB
MapMakerInternalMap.class 24KB
SwitchCompat.class 24KB
AccessibilityNodeInfoCompat.class 24KB
SwipeRefreshLayout.class 24KB
Multimaps.class 24KB
ListPopupWindow.class 22KB
TypeToken.class 22KB
ImmutableSortedMap.class 22KB
Iterators.class 22KB
R$style.class 21KB
R$style.class 21KB
R$style.class 21KB
R$style.class 21KB
ViewDragHelper.class 21KB
di.class 20KB
di.class 20KB
Iterables.class 20KB
R$styleable.class 20KB
R$styleable.class 20KB
ActionBarOverlayLayout.class 20KB
R$styleable.class 20KB
R$styleable.class 20KB
SuggestionsAdapter.class 19KB
R$style.class 19KB
R$style.class 19KB
MediaSessionCompat$MediaSessionImplBase.class 19KB
ActionMenuPresenter.class 19KB
R$style.class 19KB
R$style.class 19KB
ToolbarWidgetWrapper.class 18KB
R$styleable.class 18KB
R$styleable.class 18KB
TreeMultiset.class 18KB
FragmentActivity.class 18KB
R$styleable.class 18KB
R$styleable.class 18KB
ViewCompat.class 18KB
MediaType.class 18KB
ToolbarActionBar.class 18KB
AlertController.class 18KB
ActionMenuView.class 17KB
ImmutableSetMultimap.class 17KB
ViewCompat$BaseViewCompatImpl.class 17KB
Sets.class 17KB
ImmutableSortedSet.class 17KB
MediaBrowserCompat$MediaBrowserImplBase.class 17KB
CharMatcher.class 16KB
CharMatcher.class 16KB
MenuItemImpl.class 16KB
CacheBuilder.class 16KB
AppCompatDrawableManager.class 16KB
AbstractFuture.class 15KB
ImmutableList.class 15KB
TintManager.class 15KB
CharMatcher.class 15KB
ImmutableSortedMultiset.class 15KB
ch.class 15KB
ch.class 15KB
ServiceManager$ServiceManagerState.class 15KB
共 6614 条
- 1
- 2
- 3
- 4
- 5
- 6
- 67
资源评论
- 阿狸小乖2017-07-25谢谢楼主的分享了!!
lplj717
- 粉丝: 86
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功