天天看點

android百度地圖(模糊搜尋)。五

    SuggestionSearch mSuggestionSearch;

    private void suggestSearch(String keyword) {

        mSuggestionSearch = SuggestionSearch.newInstance();

        //  tv=(TextView) findViewById(R.id.editText1);

        mSuggestionSearch.setOnGetSuggestionResultListener(listener);

        mSuggestionSearch.requestSuggestion((new SuggestionSearchOption())

                .keyword(keyword)

                .city("蘇州"));

    }

    OnGetSuggestionResultListener listener = new OnGetSuggestionResultListener(){

        public void onGetSuggestionResult(SuggestionResult res) {

            if (res == null || res.getAllSuggestions() == null) {

                return;

                //未找到相關結果

            } else {

               ArrayList<LocationInfo> locationInfos = new ArrayList<>();

                List<SuggestionResult.SuggestionInfo>resl = res.getAllSuggestions();

                for (int i = 0; i <resl.size(); i++) {

                    Log.i("result: ", "city" + resl.get(i).city + " dis " +resl.get(i).district+ "key " + resl.get(i).key);

                    LocationInfo info = new LocationInfo();

                    info.setAddress(resl.get(i).city + " -- " +resl.get(i).district+ "-- " + resl.get(i).key);

                    info.setLatitude(resl.get(i).pt.latitude);

                    info.setLongtitu(resl.get(i).pt.longitude);

                    locationInfos.add(info);

                }

                showSearchResultDialog(locationInfos);

            }

            //擷取線上建議檢索結果

        }

    };

    @Override

    protected void onDestroy() {

        super.onDestroy();

        //在activity執行onDestroy時執行mMapView.onDestroy(),實作地圖生命周期管理

        mapView.onDestroy();

        mapView = null;

        // 關閉定位圖層

        baiduMap.setMyLocationEnabled(false);

        //關閉模糊搜尋

        mSuggestionSearch.destroy();

    }