Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/217.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 地图标记显示相同的信息_Android_Google Maps Markers_Google Maps Android Api 2 - Fatal编程技术网

Android 地图标记显示相同的信息

Android 地图标记显示相同的信息,android,google-maps-markers,google-maps-android-api-2,Android,Google Maps Markers,Google Maps Android Api 2,我有谷歌地图,上面有一些标记,但所有标记都有羞耻的信息。如何为不同的标记生成不同的信息 for (Station station : stationsListResponse.data.stations) { final Station st = station; map.addMarker(new MarkerOptions().position(new LatLng(station.getLatitude(), station.getLongi

我有谷歌地图,上面有一些标记,但所有标记都有羞耻的信息。如何为不同的标记生成不同的信息

for (Station station : stationsListResponse.data.stations) {
            final Station st = station;
            map.addMarker(new MarkerOptions().position(new LatLng(station.getLatitude(), station.getLongitude())));
            map.setInfoWindowAdapter(new InfoWindowAdapter() {

                @Override
                public View getInfoWindow(Marker arg0) {
                    return null;
                }

                @Override
                public View getInfoContents(Marker marker) {

                    View v = getLayoutInflater().inflate(R.layout.info_window, null);
                    TextView info= (TextView) v.findViewById(R.id.info);
                    info.setText(st.street+"\n"+st.city);
                    return v;
                }
            });
        }
这样做

map.setInfoWindowAdapter(new InfoWindowAdapter() {

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

        @Override
        public View getInfoWindow(Marker marker) {
              View v = getLayoutInflater().inflate(R.layout.info_window, null);
              TextView info= (TextView) v.findViewById(R.id.info);
              info.setText(st.street+"\n"+st.city);
              return v;
        }
    });

所有标记具有相同信息的原因是您将Station st=Station声明为final

相反,设置希望显示为标记属性的信息,然后在调用getInfoContents(..)时可以访问它

        for (Station station : stationsListResponse.data.stations) 
        {
            map.addMarker(new MarkerOptions().position(new LatLng(station.getLatitude(), station.getLongitude())).snippet(station.street+"\n"+station.city));
        }

        map.setInfoWindowAdapter(new InfoWindowAdapter() {

            @Override
            public View getInfoWindow(Marker arg0) {
                return null;
            }

            @Override
            public View getInfoContents(Marker marker) {

                View v = getLayoutInflater().inflate(R.layout.info_window, null);
                TextView info= (TextView) v.findViewById(R.id.info);
                info.setText(marker.getSnippet());
                return v;
            }
        });

最糟糕的是,所有人都有相同的信息,现在都失去了背景:(