我想打开一个关于单击Marker的新Activity。但我不能。因为标记是自动添加的,我从数据库获得坐标。
我如何知道点击哪个标记?
for(int i=0; i<all.size();i=i+4){
// her kaydin id,lat,lng,title bilgisi alinip ArrayListe atiliyor..
Double latDouble = Double.parseDouble(all.get(i+1));
Double lngDouble = Double.parseDouble(all.get(i+2));
map.addMarker(new MarkerOptions().position(new LatLng(latDouble, lngDouble)).snippet(all.get(i).toString()).title(all.get(i+3)));
答案 0 :(得分:0)
添加&#34; ID&#34;添加到每个标记。
然后,实现OnMarkerClickListener。正如文件中所述:
&#34;您可以使用OnMarkerClickListener监听点击事件 标记。要在地图上设置此侦听器,请调用 GoogleMap.setOnMarkerClickListener(OnMarkerClickListener)。当一个用户 点击一个标记,onMarkerClick(Marker)将被调用 标记将作为参数传递。&#34;
您将收到一个&#34; Marker&#34; OnMarkerClickListener中的对象。比较&#34; ID&#34; s。
答案 1 :(得分:0)
如果您知道数据的顺序,则可以获取标记的顺序并匹配它们。 我的意思是,你的第一行数据库代表id为= 0的标记。 您可以获得这样的标记的ID。
int order = Integer.parseInt(marker.getId().substring(1));
googleMap.setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
@Override
public void onInfoWindowClick(Marker marker) {
int order = Integer.parseInt(marker.getId().substring(1));
}
});
答案 2 :(得分:0)
您可以使用OnMarkerClickListener,但如果您不希望每个标记中都有听众且信息位于标记中,则可以使用OnInfoWindowClickListener,如下所示:
getMap().setOnInfoWindowClickListener(new OnInfoWindowClickListener() {
public void onInfoWindowClick(Marker marker) {
// here you have the Marker to start the activity, for example:
String url = marker.getTitle();
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);
}
});