当我在等待另一个应用程序最终确定时,我正在创建另一个感兴趣的东西,只能一次将1个标记添加到地图中(我喜欢我做的地图).
我目前有这个代码,如果标记已经存在,将清除地图,然后添加另一个.但我想要的是它显示一条消息告诉用户清除地图之前它将允许添加另一个标记.
@OverrIDe public voID onMapClick(LatLng position){ if (position != null){ mMap.clear(); mMap.addMarker(new MarkerOptions() .position(position) .icon(BitmapDescriptorFactory.fromresource(R.drawable.ic_launcher_new))); } else { mMap.addMarker(new MarkerOptions() .position(position) .icon(BitmapDescriptorFactory.fromresource(R.drawable.ic_launcher_new))); } }
我试过了:
@OverrIDe public voID onMapClick(LatLng position){ if (position != null){ Toast.makeText(this,"Clear map before adding another location",Toast.LENGTH_SHORT).show(); } else { mMap.addMarker(new MarkerOptions() .position(position).icon(BitmapDescriptorFactory.fromresource(R.drawable.ic_launcher_new))); } }
但所有这一切都是显示我想要的信息,即使没有标记存在,所以你实际上不能添加任何标记.我应该在这里使用ArrayList吗?该应用程序一次只允许1个标记设计.在询问之前,我环顾四周,没有发现任何特定于我的需求.
谢谢
这是我编辑过的代码,但仍然不起作用:
@OverrIDe public voID onMapLongClick(LatLng position) { mMap.clear(); Toast.makeText(this,"position Cleared",Toast.LENGTH_SHORT).show(); position = null; } @OverrIDe public voID onMapClick(LatLng position){ if (position != null){ Toast.makeText(this,"Clear first",Toast.LENGTH_SHORT).show(); /*mMap.clear(); mMap.addMarker(new MarkerOptions() .position(position) .icon(BitmapDescriptorFactory.fromresource(R.drawable.ic_launcher_new)));*/ } else { mMap.addMarker(new MarkerOptions() .position(position) .icon(BitmapDescriptorFactory.fromresource(R.drawable.ic_launcher_new))); } }
在使用onMapLongClickListener清除地图后,仍然没有让我添加标记
解决方法 addMarker返回一个Marker对象,您可以使用该对象来更新或指示您已经创建了Marker.您还可以使用Marker对象将其从地图中删除,而不是删除所有标记的clear().
在伪代码中:
Marker marker;if(marker == null) { marker = map.addMarker(...)} else { ....}总结
以上是内存溢出为你收集整理的android – 在添加另一个标记之前检查现有标记全部内容,希望文章能够帮你解决android – 在添加另一个标记之前检查现有标记所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)