android 防抖工具类,经纬度检查工具类

一:点击事件防抖工具类:

复制代码
public abstract class ThrottleClickListener implements View.OnClickListener {
    private long clickLastTimeKey = 0;
    private final long thresholdMillis = 500;//milliseconds

    @Override
    public void onClick(View v) {
        long currentTime = SystemClock.elapsedRealtime();
        if (Math.abs(currentTime - clickLastTimeKey) >= thresholdMillis) {
            //Log.i("ygn","time-"+(currentTime - clickLastTimeKey));
            clickLastTimeKey = currentTime;
            onThrottleClick(v);
        } else {
            LogUtils.w( "click fast");
        }
    }

    public abstract void onThrottleClick(View v);
}

二:判断经纬度是否合法,是否在指定范围内的工具类

public class PoiUtil {

    /**只校验正数 0-90.000000 0-180.000000 范围内
     * 经纬度校验
     * 经度longitude: (?:[0-9]|[1-9][0-9]|1[0-7][0-9]|180)\\.([0-9]{6})
     * 纬度latitude:  (?:[0-9]|[1-8][0-9]|90)\\.([0-9]{6})
     * @return boolean
     */
    public static boolean checkLoLa(String longitude,String latitude){
        String regLo = "(((?:[0-9]|[1-9][0-9]|1[0-7][0-9])\\.([0-9]{0,6}))|((?:180)\\.([0]{0,6}))|((?:[0-9]|[1-9][0-9]|1[0-7][0-9]))|(?:180))";
        String regLa = "(((?:[0-9]|[1-8][0-9]|90)\\.([0-9]{0,6}))|(?:[0-9]|[1-8][0-9]|90))";
        longitude = longitude.trim();
        latitude = latitude.trim();
        return longitude.matches(regLo)==true?latitude.matches(regLa):false;
    }

    /**只校验正数 0-90.000000 范围内
     * 纬度校验
     * 纬度latitude:  (?:[0-9]|[1-8][0-9]|90)\\.([0-9]{6})
     * @return boolean
     */
    public static boolean checkLatitude(String latitude){
        String regLa ="(((?:[0-9]|[1-8][0-9]|90)\\.([0-9]{0,6}))|(?:[0-9]|[1-8][0-9]|90))";
        latitude = latitude.trim();
        return latitude.matches(regLa);
    }
    /**只校验正数 0-180.000000 范围内
     * 经度校验
     * 经度longitude: (?:[0-9]|[1-9][0-9]|1[0-7][0-9]|180)\\.([0-9]{6})
     * @return boolean
     */
    public static boolean checkLongitude(String longitude){
        String regLo = "(((?:[0-9]|[1-9][0-9]|1[0-7][0-9])\\.([0-9]{0,6}))|((?:180)\\.([0]{0,6}))|((?:[0-9]|[1-9][0-9]|1[0-7][0-9]))|(?:180))";
        longitude = longitude.trim();
        return longitude.matches(regLo);
    }
}
相关推荐
Lei活在当下14 小时前
【Perfetto从入门到精通】4.使用 heapprofd 工具采样追踪 Java/Native 内存分配
android·性能优化·架构
陈文锦丫14 小时前
MQ的学习
java·开发语言
乌暮14 小时前
JavaEE初阶---线程安全问题
java·java-ee
爱笑的眼睛1114 小时前
GraphQL:从数据查询到应用架构的范式演进
java·人工智能·python·ai
alexhilton15 小时前
学会在Jetpack Compose中加载Lottie动画资源
android·kotlin·android jetpack
Seven9715 小时前
剑指offer-52、正则表达式匹配
java
代码or搬砖15 小时前
RBAC(权限认证)小例子
java·数据库·spring boot
青蛙大侠公主15 小时前
Thread及其相关类
java·开发语言
Coder_Boy_15 小时前
DDD从0到企业级:迭代式学习 (共17章)之 四
java·人工智能·驱动开发·学习
2301_7683502315 小时前
MySQL为什么选择InnoDB作为存储引擎
java·数据库·mysql