这几天在写android高德地图相关的项目,遇到实现乘客选择上下车地点的功能,其中涉及到搜索界面中文本框的地点输入的自动提示模块,先来看下滴滴上该功能的效果图:
从图中分析并划分一下简单功能需求:
1).主界面的定位功能
2).主界面点击目的地的TextView跳转到搜索目的地的界面
3).搜索界面文本框前面显示当前所在城市,也就是当前的定位信息
4).文本框的输入后自动提示
简单来说,就这些功能,那么我们来逐一实现一下吧:
1.主界面的定位功能
这一块比较简单,高德地图官网给出了具体实现,网上也有很多相关文章,这里就直接跳过了,想省事的可以看看这篇文章:http://blog.csdn.net/jwzhangjie/article/details/43151045
2.主界面点击选择目的地跳转到搜索界面,并在搜索界面显示城市信息
二和三两个功能模块我就连起来讲了,因为这里简单涉及到两个activity之间的数据传递,主要用intent这个意图来实现,这里就贴上关键代码吧:
(1).发送城市数据:
searchPlace=amapLocation.getCity();//获取所在城市信息
case R.id.drop_off: //poi搜索界面的跳转 Intent intent_search=new Intent(MainMenuActivity.this, POISearchActivity.class); intent_search.putExtra("city",searchPlace);//将定位的城市信息传入poi搜索事件处理 startActivity(intent_search); break;(2).接收城市数据:
public String sendCityInfo(){ //将前面定位数据中的city数据传过来 String info;//前面定位所在城市信息 Intent intent=this.getIntent(); info=intent.getStringExtra("city"); return info; }
3.文本框的输入后自动提示TextView city_tv;//显示当前定位城市信息的tvcity_tv= (TextView) findViewById(R.id.locate_city);city_tv.setText(sendCityInfo());//设置tv显示的城市信息
到了功能的重点了,来分析一下实现思路:
(1).输入的自动提示文本框
(2).获取地理信息的数据并传入,并且对当前城市筛选搜索信息
(3).将信息显示出来
实现步骤:
1).android为我们提供了自动提示文本框来实现输入关键字为其匹配相关的信息条目
用法:http://www.cnblogs.com/tinyphp/p/3969984.html参考一下这篇文章
注意它可以通过设置adapter来实现查询匹配信息的下拉列表
我们主要是通过将自定义的listview来显示信息条目,在其ontextchange()中监听
2).至于获取地理信息和相关具体搜索筛选的庞大工作量肯定不需要我们自己完成,高德地图已经为我们提供了一系列的封装方法和接口:
我们去官网查看一下高德开发文档:
发现它为我们提供三个类和一个接口,先看下这个接口: