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));//获取反向地理编码
  • 相关阅读:
    行为的封装
    分页功能-----》链表实现
    python入门教程链接
    作用域 属性链接 存储类型
    Codeforces Round #598 (Div. 3)
    CCPC2018-湖南全国邀请赛
    【洛谷P2494】 [SDOI2011]保密(分数规划+最小割)
    【洛谷P3329】 [ZJOI2011]最小割(最小割树)
    【BZOJ3716】[PA2014]Muzeum(贪心+网络流)
    【洛谷P4542】 [ZJOI2011]营救皮卡丘(费用流)
  • 原文地址:https://www.cnblogs.com/android-yus/p/5167072.html
Copyright © 2011-2022 走看看