Android Google Map - 单击标记打开新 Activity 或更大的窗口

标签 android google-maps google-maps-markers

我一直在寻找有关实现 OnMarkerClickListener 的帮助,但我发现没有任何效果。这是我在下面的标记,点击后它只会改变颜色(浅蓝色)。我正在寻找它以打开一个更大的窗口,以便我可以输入更多信息。这可能吗?

     googlemap.addMarker(new MarkerOptions()
    .position(new LatLng(49.378,-0.3904))
    .title("Hello World")
    .snippet("This is my test app")    
    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)));

标记在我的 map 上运行良好,但现在我想单击标记并打开一个新的 Activity/页面或更大的窗口,这更容易使用。由于我是一个真正的应用程序新手,如果有人成功获得了一个工作示例,请您提供链接或一些代码。

提前致谢!

编辑:

根据建议的教程,我更改了一些 MainActivity.java。

我已在 OnMarkerClickListener 中添加,并选择将未实现的方法添加到公共(public)类

  public class MainActivity extends Activity implements LocationListener, OnMarkerClickListener {

在 private void setUpMap() 下面我已经添加到我的代码中:private Marker myMarker、setonMarkerclick 监听器和 myMarker =,:

       private Marker myMarker;
         {
googlemap.setOnMarkerClickListener(this);

myMarker = googlemap.addMarker(new MarkerOptions()
    .position(new LatLng(LatLng))
    .title("Hello World")
    .snippet("My First App")    
    .icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_ORANGE)));

 }

在底部未实现的方法中,我有:

   @Override
   public boolean onMarkerClick(Marker arg0) {
// TODO Auto-generated method stub 

return false;

我需要在公共(public) Boolean OnMarkerClick 部分中进行哪些更改? 我没有收到任何错误,但它只是不起作用。我还需要添加或更改什么?

感谢任何帮助!

最佳答案

标记点击事件

Don't snap to marker after click in android map v2

引用上面的帖子

您可以使用 OnMarkerClickListener 来监听标记上的点击事件。要在 map 上设置此监听器,请调用 GoogleMap.setOnMarkerClickListener(OnMarkerClickListener)。当用户单击标记时,将调用 onMarkerClick(Marker) 并将标记作为参数传递。此方法返回一个 bool 值,指示您是否已使用该事件(即,您想要抑制默认行为)。如果它返回 false,那么除了您的自定义行为之外,还将发生默认行为。标记单击事件的默认行为是显示其信息窗口(如果可用)并移动相机以使标记位于 map 的中心。

https://developers.google.com/maps/documentation/android/reference/com/google/android/gms/maps/GoogleMap.OnMarkerClickListener .

在标记上使用 OnMarkerClickListener。

检查代码 fragment 的链接

Google Maps API v2: How to make markers clickable?

示例:在我的手机上工作


    Marker source, destination;
    GoogleMap mMap;

    mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap();
    source = mMap.addMarker(new MarkerOptions()
            .position(sc)
            .title("MyHome")
            .snippet("Bangalore")
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.pin)));

    destination = mMap.addMarker(new MarkerOptions()
            .position(lng)
            .title("MapleBear Head Office")
            .snippet("Jayanager")
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.pin)));

    mMap.setOnMarkerClickListener(marker -> {
        if (marker.getTitle().equals("MyHome")) // if marker source is clicked
            Toast.makeText(MainActivity.this, marker.getTitle(), Toast.LENGTH_SHORT).show();// display toast
        return true;
    });

关于Android Google Map - 单击标记打开新 Activity 或更大的窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16635530/

相关文章:

ios - IOS中Storyboard中如何添加GMSMapView

android - 哪个更好 : Parse or AWS

android studio 模拟器在 3.0 更新后崩溃

javascript - map api视口(viewport)经度和纬度关闭

javascript - 谷歌映射多个自定义标记,其中的数字引用列表中的项目

google-maps - 从 map 外拖放一个对象到谷歌地图: marker not put at correct latitude/longitude

php - 为什么我的 Google 标记没有显示?

java - AsyncTask - onPostExecute UI 混淆

android - 使通知被用户清除或单击后清除

google-maps - 谷歌静态 map API : double-digit labels and anchors