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);
    }
}
相关推荐
蘑菇丁17 分钟前
ansible批量生产kerberos票据,并批量分发到所有其他主机脚本
java·ide·eclipse
呼啦啦啦啦啦啦啦啦1 小时前
【Redis】持久化机制
java·redis·mybatis
我想学LINUX2 小时前
【2024年华为OD机试】 (A卷,100分)- 微服务的集成测试(JavaScript&Java & Python&C/C++)
java·c语言·javascript·python·华为od·微服务·集成测试
空の鱼7 小时前
java开发,IDEA转战VSCODE配置(mac)
java·vscode
水瓶丫头站住7 小时前
安卓APP如何适配不同的手机分辨率
android·智能手机
P7进阶路8 小时前
Tomcat异常日志中文乱码怎么解决
java·tomcat·firefox
xvch8 小时前
Kotlin 2.1.0 入门教程(五)
android·kotlin
小丁爱养花8 小时前
Spring MVC:HTTP 请求的参数传递2.0
java·后端·spring
CodeClimb8 小时前
【华为OD-E卷 - 第k个排列 100分(python、java、c++、js、c)】
java·javascript·c++·python·华为od