如何在Android中一键删除地图视图中的所有标记?
我在地图上有 2 个标记,我想在用户单击按钮时删除它们。这是我的方法:
public void deleteAllMarkers() {
if(mapView.getOverlays().size() !=0) {
//Log.d("MAPA ",Integer.toString(mapView.getOverlays().size()));
for (int i=0; i<mapView.getOverlays().size(); i++ ) {
mapView.getOverlays().remove(i);
}
mapView.postInvalidate();
}
}
问题是我必须按两次按钮才能删除两个标记,因为第一次按后只有 1 个标记消失。
我做错了什么?
I have 2 markers on the map and i want to delete them when the user clicks on a button. This is my method:
public void deleteAllMarkers() {
if(mapView.getOverlays().size() !=0) {
//Log.d("MAPA ",Integer.toString(mapView.getOverlays().size()));
for (int i=0; i<mapView.getOverlays().size(); i++ ) {
mapView.getOverlays().remove(i);
}
mapView.postInvalidate();
}
}
The problem is that i have to press my button twice to get rid of both markers, because after the first press only 1 marker disappears.
What am i doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
.size() 将在每次迭代时重新评估,即在删除元素 0 之后。
这样写会更容易:
.size() will get re-evaluated on each iteration, i.e. after you've removed element 0.
It would be easier to write:
更公平的解决方案是仅删除标记,而不删除任何其他布局(如 Compas、版权等)
The more fair solution is removing only Markers without any other layouts (like Compas, Copyright, etc)