[英]Google maps Android attaching bundle to marker
我有一个Google地图,其中的标记是从数据库中的位置设置的,对于每个标记,我都附加了一个单击侦听器以转到另一个活动,我需要的是每个标记都具有来自数据库的一堆变量,然后用作数据在下一个屏幕中,例如ID,姓名,传记等,我该怎么做?
map.setOnInfoWindowClickListener(new GoogleMap.OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
Intent intent = new Intent(MapActivity.this,OtherActivity.class);
Bundle b = new Bundle();
// Storing data into bundle
b.putString("name", name);
b.putLong("phoneNumber", phone);
intent.putExtras(b);
startActivity(intent);
}
});
您的问题对我来说不是很清楚,因为在您的问题中,您说将数据从侦听器传递到活动时遇到了问题,但是在发布的代码中,问题恰恰相反...
如果要将某些数据从侦听器传递到另一个活动,则可以正确地进行处理并发送意图。
否则,如果您的问题是连接从侦听器方法接收到的标记以及与之关联的数据,则事情将变得更加复杂,因为您无法扩展Marker
类。 在这种情况下,您有两种可能性(afaik):
每次向地图添加标记时,都会将该标记保存在Map这样的Map<Marker, YourDataAsObject>
或Map<Marker, TheIdOfTheRecordContainingYourData>
您可以使用markerOptions.snippet("Your info")
或marker.setSnippet("Your info")
方法将与标记关联的记录的ID或数据保存在标记内部。
这两种方式都将在标记与其数据之间建立牢固的联系。
对于我的英语不好,我深表歉意,希望我的回答对您有所帮助。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.