我想为每个标记添加唯一的 clickListener

时间:2021-02-24 09:57:04

标签: android android-studio google-maps-markers

嗨,我不知道 Java,但我有作业,我正在尝试使用 android studio 制作一个应用程序,它是一个地图应用程序,我可以将标记侦听器添加到标记中,但同样发生在每个标记上,我想为所有标记提供唯一的标记侦听器我的标记。如果你能帮忙(我的代码),我会很高兴

public void onMapReady(GoogleMap googleMap) {
    mMap = googleMap;

    // Add a marker in Sydney and move the camera
    LatLng Bodrum = new LatLng(37.034407, 27.430540);
    LatLng UgurMosque = new LatLng(37.033124, 27.434417);
    LatLng ABC = new LatLng(36.033124, 28.434417);
    Marker ugur=mMap.addMarker(new MarkerOptions().position(UgurMosque)
        .title("1")
        
    );
    Marker abc=mMap.addMarker(new MarkerOptions().position(ABC)
            .title("2")
    );

    mMap.moveCamera(CameraUpdateFactory.newLatLng(Bodrum));
    mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
            String markertitle=marker.getTitle();
            Intent i=new Intent(MapsActivity.this, DetailsActivity.class);
            i.putExtra("title",markertitle);
            startActivity(i);

            return false;
        }
    });

1 个答案:

答案 0 :(得分:0)

使用 Marker 标签代替标题,标签由您设置并且是预定义的标识符

mMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker) {
        String markertag =marker.getTag().toString();

        if(markertag.equals("tag1")){

        }

        return false;
    }
});

您可以改用 switch-case 语句

要添加标记使用

mMap.addMarker("tag1", lattitude, longitude);