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

前言

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

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

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

直接见代码:

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);
    }
}
复制代码
相关文章
相关标签/搜索