1

我正在使用 Android 中的 GoogleMap V2,我在地图上有一些标记,单击我正在打开 InfoWindow 的任何标记。在我的信息窗口中,我有 4 个文本视图和 2 个按钮。我想单击这两个按钮执行一些不同的操作:在我的情况下,按钮 1 用于获取方向,按钮 2 用于拨打电话。我不知道我该怎么做,所以请帮我找到这个问题的解决方案。为了更好地理解,我附上了我的信息窗口的图像。以下是我试图激发我的意图的一些代码:

phoneBtn.setOnClickListener(new OnClickListener() {

                @Override
                public void onClick(View v) {
                    // TODO Auto-generated method stub
                    Intent callIntent = new Intent(Intent.ACTION_CALL);
                    callIntent.setData(Uri.parse("tel:"
                            + phoneText.getText().toString()));
                    System.out.println("Clicking");
                    activity.startActivity(callIntent);
                }
            }); 

在此处输入图像描述

4

1 回答 1

4

引用文档

信息窗口不会尊重任何普通视图的典型交互性,例如触摸或手势事件。但是,您可以在整个信息窗口上收听通用点击事件,如下所述。

信息窗口不是实时视图,而是将视图呈现为地图上的图像。因此,您在视图上设置的任何侦听器都将被忽略,并且您无法区分视图各个部分的点击事件。建议您不要在自定义信息窗口中放置交互式组件(例如按钮、复选框或文本输入)。

您可以使用 OnInfoWindowClickListener 来监听信息窗口上的点击事件。要在地图上设置此侦听器,请调用 GoogleMap.setOnInfoWindowClickListener(OnInfoWindowClickListener)。当用户单击信息窗口时,将调用 onInfoWindowClick(Marker) 并以默认突出显示颜色突出显示信息窗口(运行 Ice Cream Sandwich 和更新版本的设备为全蓝色,早期版本的 Android 为橙色)。

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

于 2013-05-19T06:43:57.743 回答