Android百度地图onMarkerClick方法执行多次
2017-08-30 18:03
316 查看
最近在使用百度地图时,要实现返回当前位置附近的Marker,然后给Marker添加点击事件,点击Marker弹出PopupWindow,每次刷新地图显示新的Marker,使用bdMap.clear()刷新失败,原来的Marker还留在地图上,点击Marker,会多次执行onMarkerClick方法,后来仔细阅读百度地图API,发现有个方法我没做,就是removeMarkerClickListener。
原来添加Marker点击事件是这样写的:
使用的是匿名内部类的方法实现点击事件,出现多次执行点击事件,创建多次PopupWindow。
修改方法:
自己写一个listener实现点击事件:
然后再删除旧Marker,添加新Marker时,添加如下方法:
完美解决
设置地图 Marker 覆盖物点击事件监听者,自3.4.0版本起可设置多个监听对象,停止监听时调用removeMarkerClickListener移除监听对象
removeMarkerClickListener:
原来添加Marker点击事件是这样写的:
bdMap.setOnMarkerClickListener(new bdMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { //在这里我做了弹出PopupWindow return false; } });
使用的是匿名内部类的方法实现点击事件,出现多次执行点击事件,创建多次PopupWindow。
修改方法:
自己写一个listener实现点击事件:
BaiduMap.OnMarkerClickListener onMarkerClickListener = new BaiduMap.OnMarkerClickListener() { @Override public boolean onMarkerClick(Marker marker) { ////// return false; } };
然后再删除旧Marker,添加新Marker时,添加如下方法:
bdMap.removeMarkerClickListener(onMarkerClickListener); bdMap.clear();
完美解决
设置地图 Marker 覆盖物点击事件监听者,自3.4.0版本起可设置多个监听对象,停止监听时调用removeMarkerClickListener移除监听对象
removeMarkerClickListener:
public final void removeMarkerClickListener(BaiduMap.OnMarkerClickListener listener) 移除一个地图 Marker 覆盖物点击事件监听者 参数: listener -OnMarkerClickListener
相关文章推荐
- Android中为何获取系统时间的方法多次执行后时间仍不变,解决方法
- Android: Gallery的adapter中getView方法被执行多次
- android中ListView多次刷新重复执行getView的解决方法
- 【转】 android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法
- [Android] RadioGroup调用check(id)方法时,onCheckedChanged被执行多次
- Android百度地图(清除多个Marker时,onMarkerClick方法执行多次)
- android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法
- Android多进程app中Application回调onCreate()方法被执行多次分析及解决
- android application方法执行多次
- android-继承BaseAdapter--自定义适配器,getView执行多次的解决方法
- android RadioGroup调用check(id)方法时,onCheckedChanged方法被执行多次解决办法
- Android Webview的使用中,onPageFinished方法和onReceivedError方法,onPageFinished在4.4版本会被多次执行的问题
- android-继承BaseAdapter自定义适配器,getView执行多次的解决方法
- android中ListView多次刷新重复执行getView的解决方法
- android中ListView多次刷新重复执行getView的解决方法
- Android: Gallery的adapter中getView方法被执行多次
- IE6/IE7下onresize执行多次解决方法
- android listview 多次addHeaderView()异常解决方法!
- Android 之 View线程 run方法和draw方法执行的先后顺序
- Android JNI开发高级篇有关Android JNI开发中比较强大和有用的功能就是从JNI层创建、构造Java的类或执行Java层的方法获取属性等操作。 一、类的相关操作 1. jclass FindClass(JNIEnv *env, const char *name);