[google map的信息窗口仅显示我的json对象中的最后一张图片

问题描述 投票:0回答:1

我将带有毕加索库的图像加载到地图中的每个标记。但是我只从json对象中获取图像的最后一个URL,我缺少了什么?这是我的代码的主要部分:

                try {
                JSONArray array = new JSONArray(result);
                for (int i=0;i<array.length();i++){
                    MarkerOptions markerOptions = new MarkerOptions();
                    JSONObject object = array.getJSONObject(i);

                    //url image from json object, to show on each mark his specific image.
                    url = object.getString("image_path");

                    markerOptions.position(new LatLng(Double.parseDouble(object.getString("lat")),Double.parseDouble(object.getString("lon"))));
                    googleMap.addMarker(markerOptions.title("details about this marker:").snippet("more details!!!!!"));

                    googleMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
                        @Override
                        public View getInfoWindow(Marker marker) {
                            view = getLayoutInflater().inflate(R.layout.custom_marker_layout,null);
                            Maps.this.marker = marker;

                            ImageView image = (ImageView) view.findViewById(R.id.imageViewRoad);

                            Picasso.with(getApplicationContext())
                                    .load(url)
                                    .error(R.mipmap.ic_launcher)
                                    .into(image);
                            return view;
                        }

                        @Override
                        public View getInfoContents(Marker marker) {


                            if (Maps.this.marker != null
                                    && Maps.this.marker.isInfoWindowShown()) {
                                Maps.this.marker.hideInfoWindow();
                                Maps.this.marker.showInfoWindow();
                            }
                            return null;
                        }
                    });

您可以看到的屁股,我将此行放入for循环:

                        url = object.getString("image_path");

因为我表中的每一行都有图片和位置(纬度和经度)。您能告诉我如何解决这个问题吗?

android android-studio google-maps-markers picasso infowindow
1个回答
0
投票

此外,当我尝试打印到控制台以检查url是否仅保留表中的最后一行时,我没有看到它,我的表中有34行,并且在每次迭代中我都获得了正确的url。但毕加索只加载最后一个(array.length())

                            Picasso.with(getApplicationContext())
                                    .load(url)
                                    .error(R.mipmap.ic_launcher)
                                    .into(image);
                            Log.i("url:", "url is:" +url);
© www.soinside.com 2019 - 2024. All rights reserved.