Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/216.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.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_Google Maps Android Api 2 - Fatal编程技术网

Android 如何从标记列表中提取标记信息

Android 如何从标记列表中提取标记信息,android,google-maps,google-maps-android-api-2,Android,Google Maps,Google Maps Android Api 2,我使用以下代码在mapfragment中创建一个标记列表,使用三个数组发送一个记录列表的纬度、经度和名称信息。我的目标是在单击“信息”窗口时将记录的名称发送给新的意图。现在为所有标记发送数组最后一项的记录名,但我需要向每个标记发送特定信息。有什么想法吗 String[] arraylatitud = arrlat.toArray(new String[arrlat.size()]); String[] arraylongitud = arrlon.

我使用以下代码在mapfragment中创建一个标记列表,使用三个数组发送一个记录列表的纬度、经度和名称信息。我的目标是在单击“信息”窗口时将记录的名称发送给新的意图。现在为所有标记发送数组最后一项的记录名,但我需要向每个标记发送特定信息。有什么想法吗

            String[] arraylatitud = arrlat.toArray(new String[arrlat.size()]);
            String[] arraylongitud = arrlon.toArray(new String[arrlon.size()]);
            String[] arrayrecordname = arrrecname.toArray(new String[arrrecname.size()]);

            for(int i=0; i<arrlon.size();i++){


                     mapa.addMarker(new MarkerOptions()
                    .position(new LatLng(Float.valueOf (arraylatitud[i]),Float.valueOf (arraylongitud[i])))
                    .title("Grabación:" + arrayrecordname[i])
                    .snippet("Latitud:" + arraylatitud[i] + "Longitud:" + arraylongitud[i]));

                    filename = arrayrecordname[i];

            } 

            mapa.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {

                    public void onInfoWindowClick(Marker marker) {


                           Intent intent = new Intent(MapArea.this, StreamingArea.class);
                           intent.putExtra("variable_selection", filename.toString());
                           startActivity(intent);


                    }
            }
String[]arraylatitud=arrlat.toArray(新字符串[arrlat.size()]);
字符串[]arraylongitud=arrlon.toArray(新字符串[arrlon.size()]);
String[]arrayrecordname=arrrecname.toArray(新字符串[arrrecname.size()]);

对于(inti=0;i,我刚刚在这方面发表了一篇博文。 您可以在以下网址找到:

每个标记都有一个Id

Marker m = mapa.addMarker(new MarkerOptions()
                .position(new LatLng(Float.valueOf (arraylatitud[i]),Float.valueOf (arraylongitud[i])))
                .title("Grabación:" + arrayrecordname[i])
                .snippet("Latitud:" + arraylatitud[i] + "Longitud:" + arraylongitud[i]));

m.getId();
如果您存储了该id以及您需要的信息,则可以获得正确的信息

getMap().setOnInfoWindowClickListener(new OnInfoWindowClickListener() {

        public void onInfoWindowClick(Marker marker) {
            int id = marker.getId();
            Intent i = new Intent(MapArea.this.getActivity(), StreamingArea.class);
            //your code goes here
            i.putExtra(....);

            startActivity(i);

        }
    });

这对我不起作用,总是返回列表的最后一个id。在另一个论坛中,建议我使用private map markerMap=new HashMap()类型的映射;要获取OnInfo WindowClick(),markerMap.get(marker)可以调用它但我不认为这是如何实现的。是的,这就是我的意思。我会在大约一个小时后更好地解释它。我看过你的教程,我所有的问题都解决了,我的应用程序现在运行得很好。再次感谢。