Android谷歌地图添加到标记自己的标记

Val*_*ris 10 java android google-maps google-maps-android-api-2

我有这样的代码:

protected void onPostExecute(final ArrayList<HashMap<String, String>> adapter) {

                for (final HashMap<String, String> a : adapter) {
                    LatLng pos = new LatLng(Double.valueOf(a.get(TAG_latitude)), Double.valueOf(a.get(TAG_longitude)));
                    Log.e("pppppos", String.valueOf(pos.latitude));
                    Marker m = map.addMarker(new MarkerOptions().position(pos)
                            .title(a.get(TAG_NAME))
                            .snippet("Kiel is cool"));

                    map.setOnInfoWindowClickListener(
                              new OnInfoWindowClickListener(){
                                    public void onInfoWindowClick(Marker marker){
                                      Intent nextScreen = new Intent(SearchExchangerActivity.this, BankExchangersListActivity.class);
                                        nextScreen.putExtra("exchanger_id", id);    
                                        startActivityForResult(nextScreen, 0);
                                    }
                                  });
                }
Run Code Online (Sandbox Code Playgroud)

但是我需要Tag_id为每个标记设置不可见的用户字段,并在将额外信息发送到其他活动时使用此ID,例如:

protected void onPostExecute(final ArrayList<HashMap<String, String>> adapter) {

            for (final HashMap<String, String> a : adapter) {
                LatLng pos = new LatLng(Double.valueOf(a.get(TAG_latitude)), Double.valueOf(a.get(TAG_longitude)));
                Marker m = map.addMarker(new MarkerOptions().position(pos)
                        .title(a.get(TAG_NAME))
                        .snippet("Kiel is cool")
                                                    .Tag_id(TAG_ID));

                map.setOnInfoWindowClickListener(
                          new OnInfoWindowClickListener(){
                                public void onInfoWindowClick(Marker marker){
                                  Intent nextScreen = new Intent(SearchExchangerActivity.this, BankExchangersListActivity.class);
                                    nextScreen.putExtra("exchanger_id", marker.get(TAG_ID));    
                                    startActivityForResult(nextScreen, 0);
                                }
                              });
            }
Run Code Online (Sandbox Code Playgroud)

这是真的吗?我的听众怎样才能得到我点击的标记?

它也可以通过标题字段来完成......但是我在写作时遇到错误marker.getTitle()...

UPD

for (final HashMap<String, String> a : adapter) {
                LatLng pos = new LatLng(Double.valueOf(a.get(TAG_latitude)), Double.valueOf(a.get(TAG_longitude)));
                Log.e("pppppos", String.valueOf(pos.latitude));
                HashMap<Marker, String> m = new HashMap<Marker, String>();
                        m.put( map.addMarker(new MarkerOptions().position(pos)
                        .title(a.get(TAG_NAME))
                        .snippet("Kiel is cool")), "1");                    

            }

            map.setOnInfoWindowClickListener(
              new OnInfoWindowClickListener(){
                    public void onInfoWindowClick(HashMap<Marker, String> marker){
                      Intent nextScreen = new Intent(SearchExchangerActivity.this, BankExchangersListActivity.class);
                        nextScreen.putExtra("exchanger_id", "1");   
                        startActivityForResult(nextScreen, 0);
                    }
                  });
Run Code Online (Sandbox Code Playgroud)

Mac*_*ski 11

  1. 您可以Map<Marker, String>在那里使用和保存您的数据
  2. 使用Android Maps Extensions添加getDatasetData功能到Marker类.

顺便说一句.你不应该设置InfoWindowAdapter循环.这没有道理.只有最后的幸存者.