Fand heraus, dass Vererbung möglich ist, und here's eine mögliche Lösung:
Ihre individuelle Markierung einen Tag enthält (oder was auch immer Sie wollen, um es hinzuzufügen):
public class UrlMarker extends Marker {
private String tag;
public UrlMarker(BaseMarkerOptions baseMarkerOptions, String tag) {
super(baseMarkerOptions);
this.tag = tag;
}
public String getTag() {
return tag;
}
}
Und Ihre individuelle BaseMarkerOptions Klasse :
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);
}
}
Wie verwenden:
UrlMarkerOptions myMarker = new UrlMarkerOptions("object-id");
mapboxMap.addMarker(myMarker);