我有一个 gmap v2 android 类,它通过解析我的 xml 文件中的数据来填充 gmap 上的点。我的 XML 文件包含我想要的 3 件事:
- 坐标
- 姓名
- 描述
在标记上单击我想看到一个带有名称的信息窗口。我能得到那个。在 Infowindow 单击时,我想在文本视图中使用名称和描述开始一个新活动。
我不知道如何单击信息窗口以显示具有相应名称的描述的新活动。我尝试创建一个名为 MapMarkers 的类,然后将每个“条目”添加到其中,但它仅返回一个字符串,我无法弄清楚如何从中获取标题,但仍有 desc 可用于下一个活动:
public class MapMarkers {
private LatLng coor;
private String title;
private String desc;
public MapMarkers() {
super();
}
public MapMarkers(LatLng coor, String title, String desc) {
super();
this.coor = coor;
this.title = title;
this.desc = desc;
}
@Override
public String toString() {
return coor + title + desc;
}
public LatLng getCoor() {
return coor;
}
public void setCoor(LatLng coor) {
this.coor = coor;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getDesc() {
return desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
}
这是我获取数据的 for 循环。所有的数据都在那里。我可以用 Log.v(TAG,data.toString());
for (XmlDom entry : entries) {
XmlDom lon = entry.tag("longitude");
XmlDom lat = entry.tag("latitude");
XmlDom name = entry.tag("name");
XmlDom desc = entry.tag("description");
final String firename = name.text();
final String firedesc = Html.fromHtml(desc.text()) + "";
String geoLon = lon.text();
String geoLat = lat.text();
String coor = lat + "," + lon;
// Log.e("COORS: ", coor);
double lati = Double.parseDouble(geoLat);
double lngi = Double.parseDouble(geoLon);
LOCATION = new LatLng(lati, lngi);
marks = new MapMarkers();
marks.setCoor(LOCATION);
marks.setTitle(firename);
marks.setDesc(firedesc);
mrkrs.add(marks);
for (int i = 0; i < mrkrs.size(); i++) {
map.addMarker(new MarkerOptions()
.position(LOCATION)
.title(firename)
.snippet("CLICK")
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.wfmi_icon48)));
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker arg0) {
//Show full description in new activity.
}
});
}
}
如何保持此描述数据与地图标记相关联,以便在单击时我可以通过意图将此数据传递给具有此数据的新活动?
我希望这是有道理的....我有点迷路了。:)
编辑:
使用我创建的 MapMarkers 类,我的地图点在添加到地图时会显示正确的信息:
marks = new MapMarkers();
marks.setCoor(LOCATION);
marks.setTitle(firename);
marks.setDesc(firedesc);
map.addMarker(new MarkerOptions()
.position(marks.getCoor())
.title(marks.getTitle())
.snippet(marks.getDesc())
.icon(BitmapDescriptorFactory
.fromResource(R.drawable.wfmi_icon48)));
但是,当我单击信息窗口时,我只能在测试消息警报窗口中获得最后一个“描述”:
map.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker arg0) {
// Show full description in new activity.
fireDesc(marks.getTitle(), marks.getDesc());
}
});
所以从标记中获取描述是我的问题。希望清除它。
编辑编辑:
使用fireDesc(arg0.getTitle(), arg0.getSnippet());
正在显示数据,所以我需要隐藏代码段?