我有一个谷歌地图,其中包含从数据库中的位置设置的标记,我为每个标记添加了一个点击监听器以转到另一个活动,我需要的是每个标记从数据库中获得一组变量然后是在下一个屏幕中用作数据,如身份证,姓名,传记等,我该怎么做?
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);
}
});
答案 0 :(得分:0)
您的问题对我来说不是很清楚,因为在您的问题中,您说您将数据从侦听器传递到活动时遇到问题但是在您发布的代码中问题恰恰相反......
如果您想将一些数据从侦听器传递到另一个活动,那么您就是这样做的,并且有意图发送。
否则,如果您的问题是连接从侦听器方法接收到的标记以及与之关联的数据,那么事情会变得复杂一些,因为您无法扩展Marker
类;在这种情况下,你有两种可能性(afaik):
每次向地图添加标记时,都会将该标记保存在地图中Map<Marker, YourDataAsObject>
或类似Map<Marker, TheIdOfTheRecordContainingYourData>
使用方法markerOptions.snippet("Your info")
或marker.setSnippet("Your info")
保存标记内连接的记录的ID或数据。
这两种方式都可以在标记和数据之间建立可靠的连接。
我为我可怜的英语道歉,我希望我的回答能帮到你。