从HashMap的entrySet获取值并将其发送到新活动

时间:2016-06-06 14:32:00

标签: android android-intent hashmap google-maps-markers

我的地图上有标记,我使用HashMap存储数字的额外数据。我使用标记作为键,值使用数字。一个例子如下:

HashMap<Marker, String> hash = new HashMap<Marker, String>();

Marker marker1 = googleMap.addMarker(new MarkerOptions().position(
        new LatLng(randomLocation1[0], randomLocation1[1]))
                .title("Waiyaki")
                .icon(BitmapDescriptorFactory
                .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)
));
hash.put(marker1,"24354345");

Marker marker2 = googleMap.addMarker(new MarkerOptions().position(
        new LatLng(randomLocation2[0], randomLocation2[1]))
                .title("Parklands")
                .icon(BitmapDescriptorFactory
                .defaultMarker(BitmapDescriptorFactory.HUE_GREEN)
));
hash.put(marker2,"34354353");

我希望当用户点击特定标记的infowindow时,该标记的entrySet中的值将被发送到新活动。我所做的示例代码如下:

googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener(){
    @Override
    public void onInfoWindowClick(Marker arg0)            
        for (Entry<Marker, String> entry : hash.entrySet()) {
            String value = entry.getValue();
            Intent I = new Intent(MainActivity.this, NewActivity.class);
            I.putExtra(value, isFinishing());
            startActivity(I);
        }

    }
});                 

上面的代码有问题,但我不知道究竟是什么。请帮助...以及关于如何将值发送到新活动的示例代码。

1 个答案:

答案 0 :(得分:0)

要发送与标记关联的数字,请替换代码

I.putExtra(value, isFinishing());

I.putExtra("markerNumber", value);

在MainActivity中使用以下代码获取值:

String markerNumber = getIntent().getExtras().getString("markerNumber");