检索其实就是查询,比如你要找一个地方的美食,就可以通过输入城市和美食的关键字来查询!这一功能官方介绍的很多,我们主要看看检索城市的美食,并通过UID去检索美食详情信息!

package cq.cake.chwl.ui;import android.app.AlertDialog;import android.content.DialogInterface;import android.os.Bundle;import android.view.Menu;import android.view.MenuItem;import android.widget.EditText;import com.baidu.mapapi.search.core.PoiInfo;import com.baidu.mapapi.search.core.SearchResult;import com.baidu.mapapi.search.poi.OnGetPoiSearchResultListener;import com.baidu.mapapi.search.poi.PoiCitySearchOption;import com.baidu.mapapi.search.poi.PoiDetailResult;import com.baidu.mapapi.search.poi.PoiDetailSearchOption;import com.baidu.mapapi.search.poi.PoiIndoorResult;import com.baidu.mapapi.search.poi.PoiResult;import com.baidu.mapapi.search.poi.PoiSearch;import java.util.List;import butterknife.BindView;import butterknife.ButterKnife;import cq.cake.adapter.POIUidAdapter;import cq.cake.base.BaseToolbarMapActivity;import cq.cake.chwl.R;import cq.cake.util.L;import cq.cake.util.T;/** * POI检索功能 * 自v3.6.1开始,城市poi检索返回结果,新增门址类列表数据: * PoiSearch类的searchInCity(PoiCitySearchOption) 发起检索时返回的结果,增加门址类数据: * PoiResult中新增getAllAddr()获取门址类列表,当isHasAddrInfo() 返回true时,除了原poi列表外,还包含门址结果 * 例如:在“北京”搜索“上地十街1号”,除返回包含“上地十街1号”的poi列表以外,还包括地址为“上地十街1号”的明确门址。 */public class PoiSearchActivity extends BaseToolbarMapActivity {    PoiSearch mPoiSearch;    @BindView(R.id.searchview)    EditText searchview;    @BindView(R.id.searchview2)    EditText searchview2;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_poi_search);        ButterKnife.bind(this);        initPOI();    }    private void initPOI() {        //1.创建检索实例        mPoiSearch = PoiSearch.newInstance();        //2.创建监听者,官网只有前两个方法,但到了4.0是有室内地图的检索结果的        OnGetPoiSearchResultListener poiListener = new OnGetPoiSearchResultListener() {            @Override            public void onGetPoiResult(PoiResult result) {                //获取POI检索结果                L.i("检索结果总数=" + result.getTotalPoiNum() + "  Poi检索结果数:" + result.getAllPoi().size());                final List allPoi = result.getAllPoi();                POIUidAdapter adapter = new POIUidAdapter(PoiSearchActivity.this, allPoi);                new AlertDialog.Builder(PoiSearchActivity.this).setAdapter(adapter, new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        PoiInfo poi = allPoi.get(which);                        //更具得到的uid,来检索详情信息                        mPoiSearch.searchPoiDetail((new PoiDetailSearchOption()).poiUid(poi.uid));                    }                }).show();            }            @Override            public void onGetPoiDetailResult(PoiDetailResult result) {                //获取Place详情页检索结果                if (result.error != SearchResult.ERRORNO.NO_ERROR) {                    //详情检索失败                    T.showLong(PoiSearchActivity.this, "详情检索失败");                } else {                    StringBuffer buffer = new StringBuffer("名称:" + result.getName() + "\n");                    buffer.append("地址:").append(result.getAddress()).append("\n")                            .append("签到数量:").append(result.getCheckinNum()).append("\n")                            .append("评论数量:").append(result.getCommentNum()).append("\n")                            .append("详情 url:").append(result.getDetailUrl()).append("\n")                            .append("环境评价:").append(result.getEnvironmentRating()).append("\n")                            .append("设施评价:").append(result.getFacilityRating()).append("\n")                            .append("喜欢数量:").append(result.getFavoriteNum()).append("\n")                            .append("团购数量:").append(result.getGrouponNum()).append("\n")                            .append("卫生评价:").append(result.getHygieneRating()).append("\n")                            .append("营业时间:").append(result.getShopHours()).append("\n")                            .append("poi 标签:").append(result.getTag()).append("\n")                            .append("电话号码:").append(result.getTelephone()).append("\n")                            .append("poi 类型:").append(result.getType()).append("\n")                            .append("poi的uid:").append(result.getUid()).append("\n");                    //检索成功                    new AlertDialog.Builder(PoiSearchActivity.this).setTitle("检索详情").setMessage(buffer.toString()).setPositiveButton("确定", null).show();                }            }            @Override            public void onGetPoiIndoorResult(PoiIndoorResult poiIndoorResult) {                //获取室内详情页检索结果            }        };        //3.设置监听者        mPoiSearch.setOnGetPoiSearchResultListener(poiListener);    }    @Override    protected void onDestroy() {        super.onDestroy();        //5.释放POI检索实例        mPoiSearch.destroy();    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.menu_poi_search, menu);        return super.onCreateOptionsMenu(menu);    }    @Override    public boolean onOptionsItemSelected(MenuItem item) {        int itemId = item.getItemId();        switch (itemId) {            case R.id.menu1:                //4.发起检索请求                mPoiSearch.searchInCity((new PoiCitySearchOption())                        .city(searchview.getText().toString())                        .keyword(searchview2.getText().toString())                        .pageNum(10));                break;        }        return super.onOptionsItemSelected(item);    }}

更多相关文章

  1. andorid中网络图片下载、保存以及在相册中显示
  2. Android(安卓)Studio利用BuildConfig获取版本名和版本号
  3. Android获取本机ip地址和Mac地址
  4. android 通过Intent打开相册并获取选择的图片
  5. Android腾讯微薄客户端开发九:博主详情界面篇(广播,听众,收听)
  6. Android-- ArrayAdapter用法举例
  7. 一起学android之如何获取网络类型并判断是否可用(20)
  8. 获取手机屏幕大小
  9. android wifi 点对点传输

随机推荐

  1. Android(安卓)Studio代码自己主动提示无
  2. 深入探索 Android(安卓)包体积优化(匠心制
  3. 在Android(安卓)studio 中配置高德地图ap
  4. Android如何将无源码APK预置安装进系统
  5. Android(安卓)测光梳理
  6. Android:在service和activity之中,实现音乐
  7. android插件开发-就是你了!启动吧!插件的ac
  8. [置顶] 写了个Android聊天客户端框架,基本
  9. Android跨程序共享数据
  10. android动态加载class文件(DexClassLoader