Android用于校验集合参数的小封装示例

前言

android开发中,你是否对表单校验深恶痛觉.

是否还在写大量的if else来校验参数是否输入?

这个文章可能能给你帮助.

直接见代码:

/**
 * Created by Jlanglang on 2017/9/4 0004.
 */

public class SimpleParams extends HashMap<String, Object> {
 //这里放key,与校验失败后的提示内容
 private HashMap<Object, String> checkParams = new HashMap<>();

 public static SimpleParams create() {
 return new SimpleParams();
 }
 //返回this,链式编程
 public SimpleParams putP(String key, Object value) {
 this.putP(key, value, "");
 return this;
 }

 public SimpleParams putP(String key, Object value, String emptyMessage) {
 this.put(key, value);
 checkParams.put(key, emptyMessage);
 return this;
 }

 /**
 * 检查params
 *
 * @param context
 * @return
 */
 public boolean checkValue(Context context) {
 return checkValue(context, null);
 }

 /**
 * 检查params
 *
 * @param context
 * @return
 */
 public boolean checkValue(Context context, CheckParamsCallback checkParamsCallback) {
 Set<String> strings = keySet();
 for (String str : strings) {
  Object value = get(str);
  if (value == null || "".equals(value)) {
  String s = checkParams.get(str);
  //emptyMessage则说明,该参数不校验
  if (!TextUtils.isEmpty(s)) {
   //传入回调,自定义处理
   if (checkParamsCallback != null) {
   checkParamsCallback.callBack(s);
   } else {
   //默认Toast提示.
   Toast.makeText(context, s, Toast.LENGTH_SHORT).show();
   }
   return false;
  }
  }
 }
 return true;
 }

 public interface CheckParamsCallback {
 void callBack(String s);
 }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

时间: 2017-10-13

Android APP之WebView校验SSL证书的方法

Android系统的碎片化很严重,并且手机日期不正确.手机根证书异常.com.google.android.webview BUG等各种原因,都会导致WebViewClient无法访问HTTPS站点.SSL错误的处理方式十分关键,如果处理不当,可能导致中间人攻击,黑客窃听数据,进而引发安全事故. 严谨地处理onReceivedSslError尤为重要.请参考以下代码,原理是:如果webview报告SSL错误,程序将会对服务器证书进行强校验,如果服务器传入证书的指纹(sha256)与记录值一致,说

android 关于利用签名的SHA1进行安全校验的方法之一(推荐)

最近做安卓项目中使用到了百度地图的API,在申请百度地图key的时候,需要我们填入"签名的SHA1"和"客户端包名",然后百度为我们生成一个key. 于是就引发了思考,百度为何需要我们客户端签名的SHA1值呢? 第一想法就是:百度拿我们输入的参数SHA1和包名进行一些列算法计算,生成一个key返回给我们. 为了证明这个想法,写了demo进行测试,android获取包名的方法很简单,但是我们还需要从客户端中获取keystore的指纹SHA1. 进行各种资料的查找和分析

Android webview手动校验https证书(by 星空武哥)

有些时候由于Android系统的bug或者其他的原因,导致我们的webview不能验证通过我们的https证书,最明显的例子就是华为手机mate7升级到Android7.0后,手机有些网站打不开了,而更新了webview的补丁后就没问题了,充分说明系统的bug对我们混合开发webview加载https地址的影响是巨大的.那么我们怎么去解决这个问题呢? 首先我们去分析一下出现的原因 当webview加载https地址的时候,如果因为证书的问题出错的时候就会走onReceivedSslError()

Android 校验email是否合法实现代码

Android 校验email是否合法 这个其实跟JAVA中是一样的.例子: String regEx = "^(([\\w-]+\\.)+[\\w-]+|([a-zA-Z]{1}|[\\w-]{2,}))@" +"((([0-1]?[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\.([0-1]?" +"[0-9]{1,2}|25[0-5]|2[0-4][0-9])\\." +"([0-1]?[0-9]{1,2}|25

android中实现手机号码的校验的示例代码

现在应用中都有对手机号码的校验,我以我自己的方式实现了一把,下面是效果图 1.核心代码很简单,如下: /** * 验证手机格式 */ public static boolean isMobileNO(String mobiles) { /* * 移动:134.135.136.137.138.139.150.151.157(TD).158.159.187.188 * 联通:130.131.132.152.155.156.185.186 电信:133.153.180.189.(1349卫通) * 总

Android中js和原生交互的示例代码

本文介绍了Android中js和原生交互的示例代码,分享给大家,具体如下: 加载webview的类 public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); JavaScriptInterf

Android中TabLayout添加小红点的示例代码

本文介绍了Android中TabLayout添加小红点的示例代码,分享给大家,具体如下 安卓原生的android.support.design.widget.TabLayout,配合ViewPager已经很好用了,但是有时我们会在内容更新时,在tab标题右上方加上一个红点等标记此tab内容有更新时,就需要给原生的TabLayout设置你定义的布局,用法和原生的一样,只是在代码中设置一下TabLayout的布局. 1.主布局文件 <?xml version="1.0" encodi

Android中贝塞尔曲线的绘制方法示例代码

贝塞尔曲线,很多人可能不太了解,什么叫做贝塞尔曲线呢?这里先做一下简单介绍:贝塞尔曲线也可以叫做贝济埃曲线或者贝兹曲线,它由线段与节点组成,节点是可拖动的支点,线段像可伸缩的皮筋.一般的矢量图形软件常利用贝塞尔曲线来精确画出曲线. 上面的介绍中,"线段像可伸缩的皮筋"这句话非常关键,但也特别好理解.至于贝塞尔曲线的详细内容大家可以查阅相关资料.        Android提供的贝塞尔曲线绘制接口 在Android开发中,要实现贝塞尔曲线其实还是很简单的,因为Android已经给我们提

Android中Service和Activity相互通信示例代码

前言 在Android中,Activity主要负责前台页面的展示,Service主要负责需要长期运行的任务,所以在我们实际开发中,就会常常遇到Activity与Service之间的通信,本文就给大家详细介绍了关于Android中Service和Activity相互通信的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧. Activity向Service通信 第一种方式:通过MyBinder方式调用Service方法 MainActivity public class Ma

Android 中利用 ksoap2 调用 WebService的示例代码

去年刚刚工作的时候,第一个项目是要访问 WebService.由于没有接触过,查了很多资料,在别人代码的基础上稍微修改了一下,总算满足了自己的需求.最近整理电脑的时候,发现了这个 WebService 的访问类,怕哪一天需要的时候找不到了,干脆写在博客上吧,也给需要的人提供一个参考. 1.下载 ksoap2 的 jar 文件 下载地址:ksoap2-android-assembly-3.6.1-jar-with-dependencies.jar 下载完成后依赖到自己的项目中即可. 2.封装网络访

Android 实现无网络传输文件的示例代码

最近的项目需要实现一个 Android 手机之间无网络传输文件的功能,就发现了 Wifi P2P(Wifi点对点)这么一个功能,最后也实现了通过 Wifi 隔空传输文件 的功能,这里我也来整理下代码,分享给大家. Wifi P2P 是在 Android 4.0 以及更高版本系统中加入的功能,通过 Wifi P2P 可以在不连接网络的情况下,直接与配对的设备进行数据交换.相对于蓝牙,Wifi P2P 的搜索速度和传输速度更快,传输距离更远 实现的效果如下所示: 客户端.png 服务器端.png 一

Android串口通信封装之OkUSB的示例代码

本文介绍了Android串口通信封装之OkUSB的示例代码,分享给大家.具体如下: Github传送门:OkUSB OkUSB 一个简洁的Android串口通信框架. 功能简介 支持设置波特率 支持设置数据位 支持设置停止位 支持设置校验位 支持DTS和RTS 支持串口连接状态监听 用法简介 Gradle allprojects { repositories { ... maven { url 'https://jitpack.io' } } } dependencies { compile '

Android 实现无网络页面切换的示例代码

本文介绍了Android 实现无网络页面切换的示例代码,分享给大家,具体如下: 实现思路 需求是在无网络的时候显示特定的页面,想到要替换页面的地方,大多都是recyclerview或者第三方recyclerview这种需要显示数据的地方,因此决定替换掉页面中所有的recyclerview为无网络页面 实现过程 1 在BaseActivity中,当加载布局成功以后,通过id找到要替换的view,通过indexOfChild()方法,找到要替换的view的位置,再通过remove和add view来

Android ItemDecoration 实现分组索引列表的示例代码

本文介绍了Android ItemDecoration 实现分组索引列表的示例代码,分享给大家.具体如下: 先来看看效果: 我们要实现的效果主要涉及三个部分: 分组 GroupHeader 分割线 SideBar 前两个部分涉及到一个ItemDecoration类,也是我们接下来的重点,该类是RecyclerView的一个抽象静态内部类,主要作用就是给RecyclerView的ItemView绘制额外的装饰效果,例如给RecyclerView添加分割线. 使用ItemDecoration时需要继