zoukankan      html  css  js  c++  java
  • 学习写接口回调

    在做百度地图反地理编码时(坐标转地址),

    需要自己写一个结果接口回调,一般在网络请求,点击事件,以及一些异步操作时,需要用到接口回调。

    位置管理者,里面有位置监听:

    /**
     * 自己写的位置管理者
     * Created by xhj on 16-1-27.
     */
    public class TrackerLocationManager {
        protected TrackerLocationManager() {
        }
    
        /**
         * 位置管理者实例
         */
        private static TrackerLocationManager instance;
    
        public static TrackerLocationManager getInstance() {
            if (instance == null) {
                instance = new TrackerLocationManager();
            }
    
            return instance;
        }
    
        /**
         * 反向地理编码监听
         */
        public interface TrackerGeoCoderListener {
            /**要被复写的方法,获取到反地理编码的结果*/
            void getResult(ReverseGeoCodeResult result);
        }
    
        /**
         * 反向地理编码监听
         */
        TrackerGeoCoderListener trackerlistener;
    
        /**
         * 设置反向编码监听
         */
        public void setTrackerGeoCoderListener(TrackerGeoCoderListener listener) {
            this.trackerlistener = listener;
        }
    
    
        /**
         * 获取反了=地理编码的结果
         *
         * @param latLng 经纬度
         * @return
         */
        public void getPicAddress(LatLng latLng) {
            GeoCoder mSearch = GeoCoder.newInstance();
            /**地理编码检索监听者*/
            final OnGetGeoCoderResultListener listener = new OnGetGeoCoderResultListener() {
    
                public void onGetGeoCodeResult(GeoCodeResult result) {
                }
    
                @Override
                public void onGetReverseGeoCodeResult(ReverseGeoCodeResult result) {
                    if (result == null || result.error != SearchResult.ERRORNO.NO_ERROR) {
                        //没有找到检索结果
                        Log.d("alan", "没有检索到结果--反向");
                    } else {
                        //获取反向地理编码结果
                        trackerlistener.getResult(result);//会执行到监听中的getResult方法,然后执行到子类的getResult方法
                    }
    
    
                }
            };
    
            mSearch.setOnGetGeoCodeResultListener(listener);
            mSearch.reverseGeoCode(new ReverseGeoCodeOption().location(latLng));//执行反向编码,在onGetReverseGeoCodeResult中获取结果
     } }

    这是另一个类,在这个类中,进行获取反向地理编码的方法的调用以及接口的实现 

    TrackerLocationManager trackerLocationManager = TrackerLocationManager.getInstance();
                trackerLocationManager.setTrackerGeoCoderListener(myGeoCoderListener);
                trackerLocationManager.getPicAddress(latList.get(j));//获取反向地理编码
  • 相关阅读:
    使用layer.tips实现鼠标悬浮时触发事件提示消息实现
    鼠标移入、移出触发事件实现
    vue组件独享守卫钩子函数参数详解(beforeRouteEnter、beforeRouteUpdate、beforeRouteLeave)
    vscode 向下复制当前行(即visual studio 中的Ctrl + D)功能快捷键
    vue UI可视化窗口修改为显示中文
    js中的匿名函数
    NPM install -save 和 -save-dev 傻傻分不清
    Node.js中package.json中库的版本号详解(^和~区别)
    RTX管理器里怎么建群
    Mysql的timestamp(时间戳)详解以及2038问题的解决方案
  • 原文地址:https://www.cnblogs.com/android-yus/p/5167072.html
Copyright © 2011-2022 走看看