Android Studio 使Map标记可点击Android Java

fkvaft9z  于 2023-02-24  发布在  Android
关注(0)|答案(1)|浏览(140)

我正在创建一个应用程序,其中包含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提供的确切代码,它仍然不工作,让我认为这可能是一个其他东西的问题?

iovurdzv

iovurdzv1#

答案很简单--所有代码都是正确的,但是android studio和它的支持服务并不是最新的。这导致了一个问题,不允许onclicklistener工作。注意自我--确保一切都是最新的!

相关问题