我正在创建一个应用程序,其中包含Map上的各种标记。这些标记应该是可点击的,当点击一个新的活动应该开始。我不能为我的生活弄清楚为什么什么都没有发生时,他们被点击。我做了几个小时的研究,并尝试了几十种不同的解决方案,但似乎不能得到任何事情发生时,标记被点击。请帮助!
public class GlobalAlerts extends AppCompatActivity implements Serializable, OnMapReadyCallback, GoogleMap.OnMarkerClickListener {
private ImageView goBack, backgroundColor;
private TextView disasterType, selectorText;
private SupportMapFragment mapFragment;
ArrayList<LatLng> latlngs = new ArrayList<>();
ArrayList<AlertData> allAlerts = new ArrayList<>();
private GoogleMap gMap;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
allAlerts = (ArrayList<AlertData>) getIntent().getSerializableExtra("NAME");
mapFragment = (SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.maps);
mapFragment.getMapAsync(this);
for (int i=0;i<allAlerts.size();i++){
latlngs.add(new LatLng(allAlerts.get(i).getLat(),allAlerts.get(i).getLong()));
}
}
@Override
public void onMapReady(final GoogleMap googleMap) {
gMap=googleMap;
for(int i=0;i<latlngs.size();i++){
gMap.addMarker(new MarkerOptions().position(latlngs.get(i)).title(String.valueOf(allAlerts.get(i).getID())));
gMap.moveCamera(CameraUpdateFactory.newLatLng(latlngs.get(i)));
}
this.gMap.getUiSettings().setZoomControlsEnabled(true);
gMap.setOnMarkerClickListener(this);
}
@Override
public boolean onMarkerClick(@NonNull Marker marker) {
System.out.println("I'm finally working");
return false;
}
}
编辑-我现在已经复制了谷歌在https://developers.google.com/maps/documentation/android-sdk/marker提供的确切代码,它仍然不工作,让我认为这可能是一个其他东西的问题?
1条答案
按热度按时间iovurdzv1#
答案很简单--所有代码都是正确的,但是android studio和它的支持服务并不是最新的。这导致了一个问题,不允许onclicklistener工作。注意自我--确保一切都是最新的!