• 学习写接口回调


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

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

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

    /**
     * 自己写的位置管理者
     * 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));//获取反向地理编码
  • 相关阅读:
    如何使用Jquery 引入css文件
    html如何绘制带尖角(三角)的矩形
    让HTML标签、DIV、SPAN拥有focus事件和blur事件,聚焦和失焦
    html如何引用另一个html的内容
    HTML中块级元素与内联元素有什么区别 ?
    一个js文件如何加载另外一个js文件
    在线工具-程序员的工具箱-在线Cron表达式生成器
    oracle fm格式化
    html如何让label在div中的垂直方向居中显示?
    服务发现框架选型: Consul、Zookeeper还是etcd ?
  • 原文地址:https://www.cnblogs.com/android-yus/p/5167072.html
Copyright © 2020-2023  润新知