Android: передать список <GeoPoint> в другую активность

У меня есть ArrayList типа GeoPoint.

private List<GeoPoint> points = new ArrayList<GeoPoint>(); 

Я хочу передать points другому действию и получить данные в этом действии. Как мне это сделать? Я знаю, что я должен использовать это, но я искал, но не смог найти способ передать ArrayLists.

Solutions Collecting From Web of "Android: передать список <GeoPoint> в другую активность"

Эта функция поможет вам: http://developer.android.com/reference/android/content/Intent.html#putParcelableArrayListExtra(java.lang.String , java.util.ArrayList <? Extends android.os.Parcelable>)

Но проблема в том, что GeoPoint не является исчерпывающим. Ну, вы можете сделать обходной путь здесь:

1) Создайте класс, который реализует Parcelable:

 Открытый класс ParcelableGeoPoint реализует Parcelable {

      Частный GeoPoint geoPoint;

      Public ParcelableGeoPoint (точка GeoPoint) {
           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 ());
      }

      Публичный статический окончательный Parcelable.Creator <ParcelableGeoPoint> CREATOR
              = Новый Parcelable.Creator <ParcelableGeoPoint> () {
          Public ParcelableGeoPoint createFromParcel (Parcel in) {
              Вернуть новый ParcelableGeoPoint (in);
          }

          Public ParcelableGeoPoint [] newArray (int size) {
              Вернуть новый ParcelableGeoPoint [размер];
          }
      };

      Частный ParcelableGeoPoint (Parcel in) {
          Int lat = in.readInt ();
          Int lon = in.readInt ();
          GeoPoint = новый GeoPoint (lat, lon);
      }
  }

2) при отправке на другое действие (точки – это ваш список <GeoPoint>:

 ArrayList <ParcelableGeoPoint> pointsExtra = new ArrayList <ParcelableGeoPoint> ();
 Foreach (точка GeoPoint: точки) {
    PointsExtra.add (новый ParcelableGeoPoint (точка));
 }
 Intent.putExtra («геотоны», pointsExtra);

3) в названной деятельности:

 ArrayList <ParcelableGeoPoint> pointsExtra = getIntent (). GetParcelableArrayListExtra («геотоны»);

 ArrayList <GeoPoint> points = new ArrayList <GeoPoint> ();

 Foreach (ParcelableGeoPoint point: pointsExtra) {
    points.add (point.getGeoPoint ());
 }

Код должен работать, но не проверен.