Android 哪个对象对应于单击的标记?信息窗口上的映射框单击
我得到了一个在地图盒(android应用程序)上作为标记显示的点列表。当用户单击一个标记时,信息窗口弹出。我想在该信息窗口中添加一个ClickListener,这样当用户单击它时,我就可以将他重定向到一个页面,其中包含关于该点的更多信息Android 哪个对象对应于单击的标记?信息窗口上的映射框单击,android,mapbox,infowindow,Android,Mapbox,Infowindow,我得到了一个在地图盒(android应用程序)上作为标记显示的点列表。当用户单击一个标记时,信息窗口弹出。我想在该信息窗口中添加一个ClickListener,这样当用户单击它时,我就可以将他重定向到一个页面,其中包含关于该点的更多信息 标记没有setId、setTag或任何类似的内容。那么,我如何知道列表中的哪个对象对应于单击的标记呢?发现继承是可能的,并且有一种可能的解决方案: 您的自定义标记包含一个标记(或您想添加到其中的任何其他标记): 以及您的自定义BaseMarkerOptions类
标记没有setId、setTag或任何类似的内容。那么,我如何知道列表中的哪个对象对应于单击的标记呢?发现继承是可能的,并且有一种可能的解决方案: 您的自定义标记包含一个标记(或您想添加到其中的任何其他标记): 以及您的自定义BaseMarkerOptions类:
public class UrlMarkerOptions extends BaseMarkerOptions<UrlMarker, UrlMarkerOptions> {
private String tag;
public UrlMarkerOptions tag(String name) {
tag = name;
return getThis();
}
public UrlMarkerOptions() {
}
private UrlMarkerOptions(Parcel in) {
position((LatLng) in.readParcelable(LatLng.class.getClassLoader()));
snippet(in.readString());
String iconId = in.readString();
Bitmap iconBitmap = in.readParcelable(Bitmap.class.getClassLoader());
Icon icon = IconFactory.recreate(iconId, iconBitmap);
icon(icon);
tag(in.readString());
}
@Override
public UrlMarkerOptions getThis() {
return this;
}
@Override
public UrlMarker getMarker() {
return new UrlMarker(this, tag);
}
public static final Parcelable.Creator<UrlMarkerOptions> CREATOR
= new Parcelable.Creator<UrlMarkerOptions>() {
public UrlMarkerOptions createFromParcel(Parcel in) {
return new UrlMarkerOptions(in);
}
public UrlMarkerOptions[] newArray(int size) {
return new UrlMarkerOptions[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeParcelable(position, flags);
out.writeString(snippet);
out.writeString(icon.getId());
out.writeParcelable(icon.getBitmap(), flags);
out.writeString(tag);
}
}
你好,leone,“对象id”是什么意思。这是两个不同的类文件吗?嗨@Indark。我不确定我是否理解你的问题。请你详细说明一下好吗?不管怎样,如果你想在mapbox上使用标记,我认为它们已经被弃用了。我认为你现在应该改用功能。我建议在mapbox网站上阅读一些最新的东西。Hello@Leonebaventura-有点困惑。让它发挥作用。非常感谢您的及时回复。非常感谢。
public class UrlMarkerOptions extends BaseMarkerOptions<UrlMarker, UrlMarkerOptions> {
private String tag;
public UrlMarkerOptions tag(String name) {
tag = name;
return getThis();
}
public UrlMarkerOptions() {
}
private UrlMarkerOptions(Parcel in) {
position((LatLng) in.readParcelable(LatLng.class.getClassLoader()));
snippet(in.readString());
String iconId = in.readString();
Bitmap iconBitmap = in.readParcelable(Bitmap.class.getClassLoader());
Icon icon = IconFactory.recreate(iconId, iconBitmap);
icon(icon);
tag(in.readString());
}
@Override
public UrlMarkerOptions getThis() {
return this;
}
@Override
public UrlMarker getMarker() {
return new UrlMarker(this, tag);
}
public static final Parcelable.Creator<UrlMarkerOptions> CREATOR
= new Parcelable.Creator<UrlMarkerOptions>() {
public UrlMarkerOptions createFromParcel(Parcel in) {
return new UrlMarkerOptions(in);
}
public UrlMarkerOptions[] newArray(int size) {
return new UrlMarkerOptions[size];
}
};
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel out, int flags) {
out.writeParcelable(position, flags);
out.writeString(snippet);
out.writeString(icon.getId());
out.writeParcelable(icon.getBitmap(), flags);
out.writeString(tag);
}
}
UrlMarkerOptions myMarker = new UrlMarkerOptions("object-id");
mapboxMap.addMarker(myMarker);