Android之表单验证,Validation三方集成。

简介: Android之表单验证,Validation三方集成。

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


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

image.png

1.添加依赖

compile 'com.mobsandgeeks:android-saripaar:2.0.3'


2.布局

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="10dp">
    <EditText
        android:id="@+id/et1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入姓名" />
        ......
    <EditText
        android:id="@+id/et6"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="请输入姓名" />
    <Button
        android:text="Button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/button" />
</LinearLayout>


3.获取对象并设置相应判断类型


@BindView(R.id.button)
    Button button;
    @BindView(R.id.et1)
    @NotEmpty(messageResId = R.string.errorMessage)//类型
    @Order(1)//第几个
    EditText et1;
    @BindView(R.id.et2)
    @NotEmpty(messageResId = R.string.errorMessage)
    @Order(2)
    EditText et2;
strings.xml
<resources>
    <string name="app_name">ValidationDemo</string>
    <string name="errorMessage">不能为空</string>
</resources>


4.onCreate中初始化

validator = new Validator(this);
validator.setValidationListener(this);

两个监听方法

@Override
    public void onValidationSucceeded() {//不为空的时候执行
        //do somethings
        //sendSubmit();
    }
    @Override
    public void onValidationFailed(List<ValidationError> errors) {//为空的时候执行
        for (ValidationError error : errors) {
            View view = error.getView();
            String message = error.getCollatedErrorMessage(this);
            if (view instanceof EditText) {
                ((EditText) view).setError(message);
            }
        }
    }


5.调用


@Override
    public void onClick(View view) {
        switch (view.getId()) {
            case R.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;




目录
相关文章
|
3月前
|
API 定位技术 开发工具
百宝箱开放平台 ✖️ Android 集成说明
本文介绍如何通过SDK将百宝箱与友盟+ Android应用集成,涵盖环境配置、权限声明、混淆设置、SDK初始化及预初始化、日志查看、效果验证等步骤,并提供完整demo工程及参数说明,助力开发者快速实现功能集成。
189 1
百宝箱开放平台 ✖️ Android 集成说明
|
Java Android开发 C++
Android Studio JNI 使用模板:c/cpp源文件的集成编译,快速上手
本文提供了一个Android Studio中JNI使用的模板,包括创建C/C++源文件、编辑CMakeLists.txt、编写JNI接口代码、配置build.gradle以及编译生成.so库的详细步骤,以帮助开发者快速上手Android平台的JNI开发和编译过程。
1149 1
|
8月前
|
移动开发 Java 测试技术
HarmonyOS NEXT~鸿蒙系统与mPaaS三方框架集成指南
本文详细介绍了鸿蒙系统(HarmonyOS)与mPaaS框架的集成方法。鸿蒙系统作为华为开发的分布式操作系统,具备分布式架构、微内核设计等特性;mPaaS是蚂蚁金服推出的移动开发平台,提供金融级组件和全生命周期管理能力。文章从环境准备、核心功能集成(如初始化、用户认证、支付功能)、适配问题解决到调试测试及最佳实践,全方位指导开发者高效集成两者。通过遵循指南,可充分利用鸿蒙的特性和mPaaS的金融能力,构建高性能、高安全性的应用,同时避免常见兼容性问题,缩短开发周期。
431 0
|
安全 Java API
【三方服务集成】最新版 | 阿里云短信服务SMS使用教程(包含支持单双参数模板的工具类,拿来即用!)
阿里云短信服务提供API/SDK和控制台调用方式,支持验证码、通知、推广等短信类型。需先注册阿里云账号并实名认证,然后在短信服务控制台申请资质、签名和模板,并创建AccessKey。最后通过Maven引入依赖,使用工具类发送短信验证码。
6186 3
【三方服务集成】最新版 | 阿里云短信服务SMS使用教程(包含支持单双参数模板的工具类,拿来即用!)
|
存储 Java 开发工具
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
阿里云OSS(Object Storage Service)是一种安全、可靠且成本低廉的云存储服务,支持海量数据存储。用户可通过网络轻松存储和访问各类文件,如文本、图片、音频和视频等。使用OSS后,项目中的文件上传业务无需在服务器本地磁盘存储文件,而是直接上传至OSS,由其管理和保障数据安全。此外,介绍了OSS服务的开通流程、Bucket创建、AccessKey配置及环境变量设置,并提供了Java SDK示例代码,帮助用户快速上手。最后,展示了如何通过自定义starter简化工具类集成,实现便捷的文件上传功能。
3915 7
【三方服务集成】最新版 | 阿里云OSS对象存储服务使用教程(包含OSS工具类优化、自定义阿里云OSS服务starter)
|
Java 程序员 API
Android|集成 slf4j + logback 作为日志框架
做个简单改造,统一 Android APP 和 Java 后端项目打印日志的体验。
731 1
|
图形学 iOS开发 Android开发
从Unity开发到移动平台制胜攻略:全面解析iOS与Android应用发布流程,助你轻松掌握跨平台发布技巧,打造爆款手游不是梦——性能优化、广告集成与内购设置全包含
【8月更文挑战第31天】本书详细介绍了如何在Unity中设置项目以适应移动设备,涵盖性能优化、集成广告及内购功能等关键步骤。通过具体示例和代码片段,指导读者完成iOS和Android应用的打包与发布,确保应用顺利上线并获得成功。无论是性能调整还是平台特定的操作,本书均提供了全面的解决方案。
658 0
|
开发者 算法 虚拟化
惊爆!Uno Platform 调试与性能分析终极攻略,从工具运用到代码优化,带你攻克开发难题成就完美应用
【8月更文挑战第31天】在 Uno Platform 中,调试可通过 Visual Studio 设置断点和逐步执行代码实现,同时浏览器开发者工具有助于 Web 版本调试。性能分析则利用 Visual Studio 的性能分析器检查 CPU 和内存使用情况,还可通过记录时间戳进行简单分析。优化性能涉及代码逻辑优化、资源管理和用户界面简化,综合利用平台提供的工具和技术,确保应用高效稳定运行。
354 0
|
机器学习/深度学习 TensorFlow 算法框架/工具
全面解析TensorFlow Lite:从模型转换到Android应用集成,教你如何在移动设备上轻松部署轻量级机器学习模型,实现高效本地推理
【8月更文挑战第31天】本文通过技术综述介绍了如何使用TensorFlow Lite将机器学习模型部署至移动设备。从创建、训练模型开始,详细演示了模型向TensorFlow Lite格式的转换过程,并指导如何在Android应用中集成该模型以实现预测功能,突显了TensorFlow Lite在资源受限环境中的优势及灵活性。
1668 0
|
Java 开发工具 Android开发
Android mk 集成app
Android mk 集成app
165 5

热门文章

最新文章