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));//获取反向地理编码
  • 相关阅读:
    Max Sum Plus Plus HDU
    Monkey and Banana HDU
    Ignatius and the Princess IV HDU
    Extended Traffic LightOJ
    Tram POJ
    Common Subsequence HDU
    最大连续子序列 HDU
    Max Sum HDU
    畅通工程再续
    River Hopscotch POJ
  • 原文地址:https://www.cnblogs.com/android-yus/p/5167072.html
Copyright © 2011-2022 走看看