Android 如何在点击谷歌地图后从arraylist获取意图数据
我使用数组列表来显示不同的组织位置,标记使用for循环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
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;}