当前位置: 首页 > 知识库问答 >
问题:

如何在Android Studio中使用onMarkerClick打开新活动

赵智
2023-03-14

我试图在Android Studio中创建一个Android应用程序,它与谷歌地图API一起工作。我已经成功地将标记添加到地图上我选择的某个LatLng位置。
单击标记时,它会弹出一个名为“测试”的标题。但我想要的是,当用户点击标记标题时,它必须打开一个新的活动。然而,我似乎无法让它发挥作用。我已经添加了一个onMarkerClick,但是,我无法实现它。我真的很困惑。我尝试添加回调方法,但不确定如何添加。
你介意给我看一下正确的代码吗?谢谢,非常感谢!

package com.msp.googlemapsproject;

import android.content.Intent;
import android.os.Bundle;

import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

public class MainActivity extends android.support.v4.app.FragmentActivity
        implements GoogleMap.OnMarkerClickListener {

    static final LatLng MyHome = new LatLng(-29.759933, 30.801030);
    private GoogleMap googleMap;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        googleMap.setOnMarkerClickListener(this);

        try{

            if (googleMap == null) {

                googleMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();

            }

            googleMap.setMapType(GoogleMap.MAP_TYPE_HYBRID);

            googleMap.setMyLocationEnabled(true);

            googleMap.setTrafficEnabled(true);

            googleMap.setIndoorEnabled(true);

            googleMap.setBuildingsEnabled(true);

            googleMap.getUiSettings().setZoomControlsEnabled(true);

            final Marker MyHome_display = googleMap.addMarker(new MarkerOptions().position(MyHome).title("Testing"));


        } catch (Exception e) {

            e.printStackTrace();
        }
    }

    @Override
    public boolean onMarkerClick(Marker marker) {
        if (marker.equals(MyHome))
        {
            Intent intent = new Intent(MainActivity.this, LastScreen.class);
            startActivity(intent);
        }
        return false;
    }
}

共有1个答案

劳通
2023-03-14

试试这个

googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
            @Override
            public void onInfoWindowClick(Marker marker) {
               Intent intent = new Intent(MainActivity.this, LastScreen.class);
               startActivity(intent);
            }
        });
 类似资料: