地圖

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RelativeLayout
        android:id="@+id/top"
        android:layout_width="match_parent"
        android:background="@color/a_top"
        android:layout_height="50dp">
        <LinearLayout
            android:id="@+id/back"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:orientation="horizontal"
            android:paddingLeft="10dp"
            android:paddingRight="10dp"
            android:gravity="center">
            <ImageView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center_vertical"
                android:layout_centerInParent="true"
                android:background="@mipmap/back"/>
            <TextView
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:text="返回"
                android:layout_marginLeft="5dp"
                android:textSize="18dp"
                android:textColor="@color/white"/>
        </LinearLayout>
        <TextView
            android:id="@+id/title"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="目的地"
            android:textSize="18dp"
            android:layout_centerInParent="true"
            android:textColor="@color/white"/>
    </RelativeLayout>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="50dp"
        android:layout_marginTop="60dp" >

        <AutoCompleteTextView
            android:id="@+id/keyWord"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_weight="1"
            android:background="@drawable/text_search"
            android:completionThreshold="1"
            android:dropDownVerticalOffset="1.0dip"
            android:hint="請輸入關鍵字"
            android:textColorHint="@color/darkgrey"
            android:imeOptions="actionDone"
            android:inputType="text|textAutoComplete"
            android:maxLength="20"
            android:paddingRight="37.0dip"
            android:singleLine="true"
            android:textColor="#000000"
            android:textSize="16.0sp" />

        <Button
            android:id="@+id/searchButton"
            android:layout_width="wrap_content"
            android:layout_height="match_parent"
            android:text="開始搜索" />
    </LinearLayout>
</RelativeLayout>





import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.ImageButton;
import android.widget.LinearLayout;
import android.widget.ListView;
import android.widget.TextView;

import com.amap.api.maps.AMap;
import com.amap.api.maps.model.Marker;
import com.amap.api.services.core.PoiItem;
import com.amap.api.services.core.SuggestionCity;
import com.amap.api.services.help.Inputtips;
import com.amap.api.services.help.InputtipsQuery;
import com.amap.api.services.help.Tip;
import com.amap.api.services.poisearch.PoiResult;
import com.amap.api.services.poisearch.PoiSearch;

import java.util.ArrayList;
import java.util.List;

import sunease.cn.Adapter.CZ_StarAdapter;
import sunease.cn.Bean.MapBean;
import sunease.cn.Bean.StarBean;
import sunease.cn.R;
import sunease.cn.Utils.AMapUtil;
import sunease.cn.org.View.ToastUtil;

/**
 * Created by Administrator on 2016/7/16.
 */
public class CZ_ZHongDian_A extends FragmentActivity implements
        AMap.OnMarkerClickListener, AMap.InfoWindowAdapter, TextWatcher,
        PoiSearch.OnPoiSearchListener, View.OnClickListener, Inputtips.InputtipsListener {
    //private AMap aMap;
    private AutoCompleteTextView searchText;// 輸入搜索關鍵字
    private String keyWord = "";// 要輸入的poi搜索關鍵字
    private ProgressDialog progDialog = null;// 搜索時進度條
    private PoiResult poiResult; // poi返回的結果
    private int currentPage = 0;// 當前頁面,從0開始計數
    private PoiSearch.Query query;// Poi查詢條件類
    private PoiSearch poiSearch;// POI搜索

    private LinearLayout back;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.cz_star);
        init();
    }

    /**
     * 設置頁面監聽
     */

    private void init(){

        Button searButton = (Button) findViewById(R.id.searchButton);
        searButton.setOnClickListener(this);
        searchText = (AutoCompleteTextView) findViewById(R.id.keyWord);
        searchText.addTextChangedListener(this);// 添加文本輸入框監聽事件

        back=(LinearLayout)findViewById(R.id.back);
        back.setOnClickListener(this);

    }

    /**
     * Button點擊事件回調方法
     */

    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.back:
                finish();
                break;
            /**
             * 點擊搜索按鈕
             */
            case R.id.searchButton:
                searchButton();
                //  searchButton();
                break;
            default:
                break;
        }
    }


    /**
     * 點擊搜索按鈕
     */
    public void searchButton() {
        keyWord = AMapUtil.checkEditText(searchText);
        if ("".equals(keyWord)) {
            ToastUtil.show(CZ_ZHongDian_A.this, "請輸入搜索關鍵字");
            return;
        } else {
            MapBean.CZ_WEIZHISTAR=keyWord;
            doSearchQuery();
        }
    }

    /**
     * 顯示進度框
     */
    private void showProgressDialog() {
        if (progDialog == null)
            progDialog = new ProgressDialog(this);
        progDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
        progDialog.setIndeterminate(false);
        progDialog.setCancelable(false);
        progDialog.setMessage("正在搜索:\n" + keyWord);
        progDialog.show();
    }

    /**
     * 隱藏進度框
     */
    private void dissmissProgressDialog() {
        if (progDialog != null) {
            progDialog.dismiss();
        }
    }

    /**
     * 開始進行poi搜索
     */
    protected void doSearchQuery() {
        showProgressDialog();// 顯示進度框
        currentPage = 0;
        query = new PoiSearch.Query(keyWord, "", "");// 第一個參數表示搜索字符串,第二個參數表示poi搜索類型,第三個參數表示poi搜索區域(空字符串代表全國)

        query.setPageSize(100);// 設置每頁最多返回多少條poiitem
        query.setPageNum(currentPage);// 設置查第一頁

        poiSearch = new PoiSearch(this, query);
        poiSearch.setOnPoiSearchListener(this);
        poiSearch.searchPOIAsyn();

        Intent CZ=new Intent(CZ_ZHongDian_A.this,MainActivity.class);
        MapBean.MAINNUN=3;
        startActivity(CZ);
    }

    @Override
    public boolean onMarkerClick(Marker marker) {
        marker.showInfoWindow();
        return false;
    }

    @Override
    public View getInfoContents(Marker marker) {
        return null;
    }

    @Override
    public View getInfoWindow(final Marker marker) {
        View view = getLayoutInflater().inflate(R.layout.poikeywordsearch_uri,
                null);
        TextView title = (TextView) view.findViewById(R.id.title);
        title.setText(marker.getTitle());

        TextView snippet = (TextView) view.findViewById(R.id.snippet);
        snippet.setText(marker.getSnippet());
        ImageButton button = (ImageButton) view
                .findViewById(R.id.start_amap_app);
        // 調起高德地圖app
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //startAMapNavi(marker);
            }
        });
        return view;
    }


    /**
     * poi沒有搜索到數據,返回一些推薦城市的信息
     */
    private void showSuggestCity(List<SuggestionCity> cities) {
        String infomation = "推薦城市\n";
        for (int i = 0; i < cities.size(); i++) {
            infomation += "城市名稱:" + cities.get(i).getCityName() + "城市區號:"
                    + cities.get(i).getCityCode() + "城市編碼:"
                    + cities.get(i).getAdCode() + "\n";
        }
        ToastUtil.show(CZ_ZHongDian_A.this, infomation);

    }

    @Override
    public void afterTextChanged(Editable s) {


    }

    @Override
    public void beforeTextChanged(CharSequence s, int start, int count,
                                  int after) {

    }

    @Override
    public void onTextChanged(CharSequence s, int start, int before, int count) {
        String newText = s.toString().trim();
        if (!AMapUtil.IsEmptyOrNullString(newText)) {
            InputtipsQuery inputquery = new InputtipsQuery(newText,"");
            Inputtips inputTips = new Inputtips(CZ_ZHongDian_A.this, inputquery);
            inputTips.setInputtipsListener(this);
            inputTips.requestInputtipsAsyn();
        }
    }


    /**
     * POI信息查詢回調方法
     */
    @Override
    public void onPoiSearched(PoiResult result, int rCode) {
        dissmissProgressDialog();// 隱藏對話框
        if (rCode == 1000) {
            if (result != null && result.getQuery() != null) {// 搜索poi的結果
                if (result.getQuery().equals(query)) {// 是否是同一條
                    poiResult = result;
                    // 取得搜索到的poiitems有多少頁
                    List<PoiItem> poiItems = poiResult.getPois();// 取得第一頁的poiitem數據,頁數從數字0開始
                    List<SuggestionCity> suggestionCities = poiResult
                            .getSearchSuggestionCitys();// 當搜索不到poiitem數據時,會返回含有搜索關鍵字的城市信息

                    if (poiItems != null && poiItems.size() > 0) {
                        /*aMap.clear();// 清理之前的圖標
                        PoiOverlay poiOverlay = new PoiOverlay(aMap, poiItems);
                        poiOverlay.removeFromMap();
                        poiOverlay.addToMap();
                        poiOverlay.zoomToSpan();*/
                    } else if (suggestionCities != null
                            && suggestionCities.size() > 0) {
                        showSuggestCity(suggestionCities);
                    } else {
                        ToastUtil.show(CZ_ZHongDian_A.this,
                                R.string.no_result);
                    }
                }
            } else {
                ToastUtil.show(CZ_ZHongDian_A.this,
                        R.string.no_result);
            }
        } else {
            ToastUtil.showerror(this, rCode);
        }

    }

    @Override
    public void onPoiItemSearched(PoiItem item, int rCode) {
        // TODO Auto-generated method stub

    }



    @Override
    public void onGetInputtips(List<Tip> tipList, int rCode) {
        if (rCode == 1000) {// 正確返回
            List<String> listString = new ArrayList<String>();
            for (int i = 0; i < tipList.size(); i++) {
                listString.add(tipList.get(i).getName());
            }
            ArrayAdapter<String> aAdapter = new ArrayAdapter<String>(
                    getApplicationContext(),
                    R.layout.cz_staraddress_item,R.id.online_user_list_item_textview, listString);
            searchText.setAdapter(aAdapter);
            aAdapter.notifyDataSetChanged();
        } else {
            ToastUtil.showerror(this, rCode);
        }

    }
}









發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章