1

次のコードを使用して、レコードの 1 つのリストの緯度、経度、および名前の情報を送信する 3 つの配列を使用して、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);


                    }
            }
4

1 に答える 1

3

これについてブログに投稿しました。あなたはそれを見つけることができます:http: //bon-app-etit.blogspot.be/2012/12/add-informationobject-to-marker-in.html

すべてのマーカーには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);

        }
    });
于 2012-12-23T11:37:09.480 に答える