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);
    }
}
相关推荐
亦暖筑序5 小时前
Java 8老系统Browser Agent实战:三层拦截把AI操作后台变成可审计流程
java·后端·设计模式
Coffeeee7 小时前
闲聊几句,Android老哥们,你们多久没做技改需求了
android·程序员·代码规范
萝卜er8 小时前
Fragment 生命周期与状态恢复-《Android深水区(四)》
android
萝卜er8 小时前
Intent 显式、隐式与 PendingIntent-《Android深水区(五)》
android
用户298698530149 小时前
Java 实现 Word 文档加密与权限解除
java·后端
Yeats_Liao9 小时前
14:Servlet中的页面跳转-Java Web
java·后端·架构
未秃头的程序猿9 小时前
告别"if-else地狱"!Java 21模式匹配,代码优雅了10倍
java·后端·面试
鹤望兰67510 小时前
字节跳动国际支付-后端开发-三面面经
java
Flittly10 小时前
【AgentScope Java新手村系列】(14)人机交互
java·spring boot·spring
RainCity10 小时前
Java Swing 自定义组件库分享(十二)
java·笔记·后端