package com.intent;
import java.util.ArrayList;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
public class IntentTest extends Activity {
 /** Called when the activity is first created. */
 private ArrayList<AddressBookData> list;
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.main);
  this.list = new ArrayList<AddressBookData>();
  list.add(new AddressBookData("name1", "number1"));
  Intent i = new Intent(this, IntentTest2.class);
  i.putParcelableArrayListExtra("postParameters", this.list);
  startActivity(i);
 }
}




 

package com.intent;
import java.util.ArrayList;
import android.app.Activity;
import android.os.Bundle;
import android.util.Log;
public class IntentTest2 extends Activity {
 /** Called when the activity is first created. */
 private ArrayList<AddressBookData> list2 = new ArrayList<AddressBookData>();
 @Override
 public void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.copymain);
  list2 = getIntent().getParcelableArrayListExtra("postParameters");
  
  
   for (int i = 0; i < list2.size(); i++) {
   Log.i("DEBUG", "list2 = " + list2.get(i));
  }
 }
}

 

package com.intent;
import android.os.Bundle;
import android.os.Parcel;
import android.os.Parcelable;
public class AddressBookData implements Parcelable {
 private String name;
 private String number;
 public AddressBookData() {
 }
 public AddressBookData(String name, String number) {
  this.name = name;
  this.number = number;
 }
 public String getName() {
  return name;
 }
 public void setName(String name) {
  this.name = name;
 }
 public String getNumber() {
  return number;
 }
 public int describeContents() {
  // TODO Auto-generated method stub
  return 0;
 }
 public void writeToParcel(Parcel dest, int flags) {
  // TODO Auto-generated method stub
  // dest.writeString(name);
  // dest.writeString(number);
  Bundle objectBundle = new Bundle();
  objectBundle.putString("name", this.name);
  objectBundle.putString("number", this.number);
  dest.writeBundle(objectBundle);
 }
 public AddressBookData(Parcel src) {
  // this.name = src.readString();
  // this.number = src.readString();
  Bundle objectBundle = src.readBundle();
  this.name = objectBundle.getString("name");
  this.number = objectBundle.getString("number");
 }
 public final Parcelable.Creator<AddressBookData> CREATOR = new Parcelable.Creator<AddressBookData>() {
  public AddressBookData createFromParcel(Parcel source) {
   // TODO Auto-generated method stub
   return new AddressBookData(source);
  }
  public AddressBookData[] newArray(int size) {
   // TODO Auto-generated method stub
   return new AddressBookData[size];
  }
 };
}





에레메세지 
->

07-05 04:51:49.618: ERROR/AndroidRuntime(430): Uncaught handler: thread main exiting due to uncaught exception
07-05 04:51:49.638: ERROR/AndroidRuntime(430): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.intent/com.intent.IntentTest2}: java.lang.NullPointerException
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2496)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2512)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.app.ActivityThread.access$2200(ActivityThread.java:119)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1863)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.os.Handler.dispatchMessage(Handler.java:99)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.os.Looper.loop(Looper.java:123)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.app.ActivityThread.main(ActivityThread.java:4363)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at java.lang.reflect.Method.invokeNative(Native Method)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at java.lang.reflect.Method.invoke(Method.java:521)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:860)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:618)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at dalvik.system.NativeStart.main(Native Method)
07-05 04:51:49.638: ERROR/AndroidRuntime(430): Caused by: java.lang.NullPointerException
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at java.lang.reflect.Field.getField(Native Method)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at java.lang.reflect.Field.get(Field.java:247)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.os.Parcel.readParcelable(Parcel.java:1811)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.os.Parcel.readValue(Parcel.java:1713)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.os.Parcel.readListInternal(Parcel.java:1956)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.os.Parcel.readArrayList(Parcel.java:1403)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.os.Parcel.readValue(Parcel.java:1734)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.os.Parcel.readMapInternal(Parcel.java:1947)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.os.Bundle.unparcel(Bundle.java:169)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.os.Bundle.getParcelableArrayList(Bundle.java:1081)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.content.Intent.getParcelableArrayListExtra(Intent.java:3297)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at com.intent.IntentTest2.onCreate(IntentTest2.java:21)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2459)
07-05 04:51:49.638: ERROR/AndroidRuntime(430):     ... 11 more

왜 에러가 나는지 모르겠습니다. 일반적으로 Intent 로 데이터 넘기는 경우가 문제가 없는데 
ArrayList<T> 타입으로 넘기는 경우 실제로 받는 액티비티에서 해당 리스트를 읽고자 할 경우 위의 처럼 에러가 뜹니다.
아시는 분 ~ 알려주세요