Diese Funktion wird Ihnen helfen: http://developer.android.com/reference/android/content/Intent.html#putParcelableArrayListExtra(java.lang.String, java.util.ArrayList <? erweitert android.os.Parcelable >)
Aber das Problem ist, dass GeoPoint nicht Parcelable ist. Nun, man kann eine Abhilfe tun hier:
1) Erstellen Sie eine Klasse, die implementiert Parcel:
public class ParcelableGeoPoint implements Parcelable {
private GeoPoint geoPoint;
public ParcelableGeoPoint(GeoPoint point) {
geoPoint = point;
}
public GeoPoint getGeoPoint() {
return geoPoint;
}
public int describeContents() {
return 0;
}
public void writeToParcel(Parcel out, int flags) {
out.writeInt(geoPoint.getLatitudeE6());
out.writeInt(geoPoint.getLongitudeE6());
}
public static final Parcelable.Creator<ParcelableGeoPoint> CREATOR
= new Parcelable.Creator<ParcelableGeoPoint>() {
public ParcelableGeoPoint createFromParcel(Parcel in) {
return new ParcelableGeoPoint(in);
}
public ParcelableGeoPoint[] newArray(int size) {
return new ParcelableGeoPoint[size];
}
};
private ParcelableGeoPoint(Parcel in) {
int lat = in.readInt();
int lon = in.readInt();
geoPoint = new GeoPoint(lat, lon);
}
}
2), wenn auf der anderen Tätigkeit Senden (Punkte ist Ihre Liste <GeoPoint>:
ArrayList<ParcelableGeoPoint> pointsExtra = new ArrayList<ParcelableGeoPoint>();
foreach(GeoPoint point: points) {
pointsExtra.add(new ParcelableGeoPoint(point));
}
intent.putExtra("geopoints", pointsExtra);
3) in der Aktivität genannt:
ArrayList<ParcelableGeoPoint> pointsExtra = getIntent().getParcelableArrayListExtra("geopoints");
ArrayList<GeoPoint> points = new ArrayList<GeoPoint>();
foreach(ParcelableGeoPoint point: pointsExtra) {
points.add(point.getGeoPoint());
}
code sollte funktionieren, ist aber noch nicht getestet.
Sie sollten einen Dienst oder ein statisches Klassenmitglied verwenden. Das Übergeben großer Datenobjekte über Extras ist keine gute Idee. – Falmarri
definieren große Extras :) GeoPoint ist ein Objekt mit nur zwei Ints. Aber Sie haben Recht. Wenn es zu groß ist, dann ist es eine schlechte Idee. Aber eine Liste von Geopunkten ist okay, denke ich. –
@Falmarri: statische Klassenmitglieder sind Globals, und Globals sind schlecht, mmmkay? – hoffmanc