我有一个操作栏图标(加号图标)点击我已启用(称为)setOnMapClickListener,我在其中根据地图上的点击在地图上创建标记。
@Override
public boolean onOptionsItemSelected(MenuItem item) {
if(item.getItemId() == R.id.action_addItem) {
invalidateOptionsMenu();
mMap.setOnMapClickListener(new OnMapClickListener() {
@Override
public void onMapClick(LatLng point) {
if(canAddMarker){
mMap.animateCamera(CameraUpdateFactory.newLatLng(point));
mMap.addMarker(new MarkerOptions().position(point).title("Test Title").snippet("Test snippet"));
}
}
});
else {
//Code to disable listener
}
}
问题是,一旦我点击操作栏上的任何其他图标,我希望监听器停止/禁用,以便在地图上再触摸不会导致创建新标记。
有关如何禁用侦听器的任何想法?
答案 0 :(得分:1)
要禁用侦听器,只需将其设置为null,因为只有在它不为空时才会调用它。
mMap.setOnMapClickListener(null);