android-place-search

输入提示与poi关键字搜索示例

前述

使用方法##

###1:配置搭建AndroidSDK工程###

扫一扫安装##

Screenshot

示例效果##

  • 输入提示展示

Screenshot

  • POI搜索结果展示

Screenshot

核心类/接口

接口 说明 版本
PoiSearch searchPOIAsyn() 查询POI异步接口 V2.1.0
Inputtips requestInputtipsAsyn() 查询输入提示的异步接口 V2.0.2

核心难点

 - 输入字符变化时开启输入提示

    /**
   * 输入字符变化时触发
   *
   * @param newText
   * @return
   */
  @Override
  public boolean onQueryTextChange(String newText) {
      if (!AMapUtil.IsEmptyOrNullString(newText)) {
          InputtipsQuery inputquery = new InputtipsQuery(newText, Constants.DEFAULT_CITY);
          Inputtips inputTips = new Inputtips(InputTipsActivity.this.getApplicationContext(), inputquery);
          inputTips.setInputtipsListener(this);
          inputTips.requestInputtipsAsyn();
      } else {
          if (mIntipAdapter != null && mCurrentTipList != null) {
              mCurrentTipList.clear();
              mIntipAdapter.notifyDataSetChanged();
          }
      }
      return false;
  }

  - 输入提示获取tips或者搜索关键词处理逻辑

   /**
   * 输入提示activity选择结果后的处理逻辑
   *
   * @param requestCode
   * @param resultCode
   * @param data
   */

  @Override
  protected void onActivityResult(int requestCode, int resultCode, Intent data) {
      super.onActivityResult(requestCode, resultCode, data);
      if (resultCode == RESULT_CODE_INPUTTIPS && data
              != null) {
          mAMap.clear();
          Tip tip = data.getParcelableExtra(Constants.EXTRA_TIP);
          if (tip.getPoiID() == null || tip.getPoiID().equals("")) {
              doSearchQuery(tip.getName());
          } else {
              addTipMarker(tip);
          }
          mKeywordsTextView.setText(tip.getName());
          if(!tip.getName().equals("")){
              mCleanKeyWords.setVisibility(View.VISIBLE);
          }
      } else if (resultCode == RESULT_CODE_KEYWORDS && data != null) {
          mAMap.clear();
          String keywords = data.getStringExtra(Constants.KEY_WORDS_NAME);
          if(keywords != null && !keywords.equals("")){
              doSearchQuery(keywords);
          }
          mKeywordsTextView.setText(keywords);
          if(!keywords.equals("")){
              mCleanKeyWords.setVisibility(View.VISIBLE);
          }
      }
  }