<?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); } } }