【问题标题】:I want to add unique clickListener to every marker我想为每个标记添加唯一的 clickListener
【发布时间】:2021-05-26 15:09:43
【问题描述】:

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

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;
        }
    });

【问题讨论】:

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


    【解决方案1】:

    使用标记标签而不是标题,标签由您设置并且是预定义的标识符

    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);
    

    【讨论】:

    • 我可以用 if (markertitle.equals("1") 之类的标题吗
    • 我相信你也能做到
    • 很高兴能帮上忙!
    猜你喜欢
    • 1970-01-01
    • 2013-06-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多