为什么事件侦听器不在Android中使用Google地图标记?

为什么事件侦听器不在Android中使用Google地图标记?,android,google-maps,Android,Google Maps,目前我正在谷歌地图上工作,但当我给标记提供click listener时,事件不会触发 @Override public void onMapReady(GoogleMap googleMap) { googleMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() { @Override public View getInfoWindow(Marker marker) {

目前我正在谷歌地图上工作,但当我给标记提供click listener时,事件不会触发

@Override
public void onMapReady(GoogleMap googleMap) {
        googleMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
        @Override
        public View getInfoWindow(Marker marker) {

            View view = getActivity().getLayoutInflater().inflate(R.layout.map_marker_layout, null);

            mNameLayout = (RelativeLayout) view.findViewById(R.id.map_name_layout);

            mNameLayout.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View view) {
                    Toast.makeText(getActivity(), "Clicked", Toast.LENGTH_SHORT).show();
                }
            });

            return view;
        }

        @Override
        public View getInfoContents(Marker marker) {
            return null;
        }
    });
}

请仔细阅读我的代码,并向我建议一些解决方案。

在mapready上按如下方式单击列表

  googleMap.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
        @Override
        public void onInfoWindowClick(Marker marker) {
       Toast.makeText(getActivity(), "Infowindow clicked", Toast.LENGTH_SHORT).show();
        }
    });
    googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
        @Override
        public boolean onMarkerClick(Marker marker) {
           Toast.makeText(getActivity(), "Marker Clicked", Toast.LENGTH_SHORT).show();
            return false;
        }
    });

从上面的代码中,您将映射布局扩展到getInfoWindow()中,并设置布局上的单击事件而不是标记上的单击事件

如果你想点击你的地图,你需要试试这个-

@Override
public void onMapReady(GoogleMap googleMap) {
        googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
                @Override
                public void onMapClick(LatLng latLng) {

                }
            });
}
@Override
public void onMapReady(GoogleMap googleMap) {
    googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
                        @Override
                        public boolean onMarkerClick(Marker marker) {
                            return true;
                        }
                    });
}
如果你想点击你的地图标记,那么你需要试试这个-

@Override
public void onMapReady(GoogleMap googleMap) {
        googleMap.setOnMapClickListener(new GoogleMap.OnMapClickListener() {
                @Override
                public void onMapClick(LatLng latLng) {

                }
            });
}
@Override
public void onMapReady(GoogleMap googleMap) {
    googleMap.setOnMarkerClickListener(new GoogleMap.OnMarkerClickListener() {
                        @Override
                        public boolean onMarkerClick(Marker marker) {
                            return true;
                        }
                    });
}

是不是
Toast
没有显示?嘿,谢谢,没有Toast显示我不是很确定,但是你可以先在
MNAMEALAYOUT
上使用
setClickable(true)
。没有setClickable(true)不起作用你提到你已经将click listener添加到了标记中,但在代码中,您已将其设置为信息窗口布局。您是要单击标记还是窗口?