Android 如何在点击谷歌地图后从arraylist获取意图数据

Android 如何在点击谷歌地图后从arraylist获取意图数据,android,google-maps,android-intent,arraylist,marker,Android,Google Maps,Android Intent,Arraylist,Marker,我使用数组列表来显示不同的组织位置,标记使用for循环 private void addMarkers() { if (googleMap != null) { // getting intent data Intent in = getIntent(); ArrayList<HashMap<String, String>> organizationList = (ArrayList<HashMap<String, String&g

我使用数组列表来显示不同的组织位置,标记使用for循环

private void addMarkers() {
if (googleMap != null) {

    // getting intent data
    Intent in = getIntent();

    ArrayList<HashMap<String, String>> organizationList = (ArrayList<HashMap<String, String>>)in.getSerializableExtra("organization");

    for(int i = 0; i < organizationList.size(); i++) {
        name = organizationList.get(i).get(TAG_NAME);
        latitude = organizationList.get(i).get(TAG_LATITUDE);
        longitude = organizationList.get(i).get(TAG_LONGITUDE);

        lat = Double.parseDouble(latitude);
        longi = Double.parseDouble(longitude);

        googleMap.addMarker(new MarkerOptions().position(new LatLng(lat,longi)).title(name).visible(true));

    }
我知道putExtra给出了for循环的最后一个值。。。。。请帮助我发送为另一个类单击的标记的准确值。请尝试此操作

@Override
    public void onInfoWindowClick(Marker arg0) {
        // TODO Auto-generated method stub

        Toast.makeText(getApplicationContext(),arg0.getTitle(), Toast.LENGTH_LONG).show();
        Intent in = new Intent(getApplicationContext(),SingleContactActivity.class);

        in.putExtra(TAG_NAME, name);
        in.putExtra(TAG_LATITUDE, latitude);
        in.putExtra(TAG_LONGITUDE, longitude);
        startActivity(in);

    }

这就是我解决的问题

  @Override
public boolean onMarkerClick(Marker marker) {
Log.i("GoogleMapActivity", "onMarkerClick");

Intent intent = getIntent();

@SuppressWarnings("unchecked")
ArrayList<HashMap<String, String>> organizationList = (ArrayList<HashMap<String, String>>)intent.getSerializableExtra("organization");

for(int i = 0; i < organizationList.size(); i++) {
    name = organizationList.get(i).get(TAG_NAME);

    if(marker.getTitle().equalsIgnoreCase(name)){

        latitude = organizationList.get(i).get(TAG_LATITUDE);
        longitude = organizationList.get(i).get(TAG_LONGITUDE);

        Intent in = new Intent(getApplicationContext(),SingleContactActivity.class);
        in.putExtra(TAG_NAME, name);
        in.putExtra(TAG_LATITUDE, latitude);
        in.putExtra(TAG_LONGITUDE, longitude);
        startActivity(in);

    }

}

return false;}

你到底想要什么?我不明白。在MarkerClick中编辑您的问题,并在其中添加更多信息,再次循环您的组织列表,检查marker Title=组织名称是否正确,然后您就拥有了正确的组织,您可以将其放入意图中。谢谢Francesco verheye
  @Override
public boolean onMarkerClick(Marker marker) {
Log.i("GoogleMapActivity", "onMarkerClick");

Intent intent = getIntent();

@SuppressWarnings("unchecked")
ArrayList<HashMap<String, String>> organizationList = (ArrayList<HashMap<String, String>>)intent.getSerializableExtra("organization");

for(int i = 0; i < organizationList.size(); i++) {
    name = organizationList.get(i).get(TAG_NAME);

    if(marker.getTitle().equalsIgnoreCase(name)){

        latitude = organizationList.get(i).get(TAG_LATITUDE);
        longitude = organizationList.get(i).get(TAG_LONGITUDE);

        Intent in = new Intent(getApplicationContext(),SingleContactActivity.class);
        in.putExtra(TAG_NAME, name);
        in.putExtra(TAG_LATITUDE, latitude);
        in.putExtra(TAG_LONGITUDE, longitude);
        startActivity(in);

    }

}

return false;}