2011-10-28 5 views
4
목록 개체 구문 분석을 (내가 객체를 읽는 동안 오류가 발생 생각)하는 동안 나는 오류를 얻고있다

를 포함하는 클래스 parcelable을 확인 여기 내 코드사용자 정의 개체 목록

public class TestSample implements Parcelable { 
    int intValue; 
    String stirngValue; 
    private List<DocumentControlPolicy> cpls; 
    @Override 
    public int describeContents() { 
     // TODO Auto-generated method stub 
     return 0; 
    } 

    @Override 
    public void writeToParcel(Parcel dest, int flags) { 
     dest.writeInt(intValue); 
     dest.writeString(stirngValue); 
     dest.writeTypedList(cpls); 
     dest.writeList(cpls); 
    } 
    public static final Parcelable.Creator<TestSample> CREATOR 
        = new Parcelable.Creator<TestSample>() { 
      public TestSample createFromParcel(Parcel in) { 
       return new TestSample(in); 
      } 

     public TestSample[] newArray(int size) { 
      return new TestSample[size]; 
     } 
    }; 

    private TestSample(Parcel in) { 
     intValue = in.readInt(); 
     stirngValue=in.readString(); 
     in.readTypedList(cpls,DocumentControlPolicy.CREATOR); 
    } 
    public TestSample(int intValue, String stirngValue) { 
     super(); 
     this.intValue = intValue; 
     this.stirngValue = stirngValue; 
    } 

} 

입니다 그리고 여기에 코드입니다 여기에 다른

Intent nextpage = new Intent(this, Secondpage.class); 

     TestSample tst= new TestSample(1,"Tood"); 
     Log.i("myTag", tst.toString()); 
     nextpage.putExtra("ONE", tst); 
     startActivity(nextpage); 

에 하나 개의 활동에서 데이터를 전송하는 데이터를 얻을 수있는 코드

TestSample tst = getIntent().getParcelableExtra("ONE"); 
     if(tst != null){ 
      Log.i("myTag", "second "+tst.toString()); 
     }else{ 
      Log.i("myTag","second tst is null"); 
     } 

는하지만 난 당신이 그것을 선언하지 않고 TestSample(Parcel in) 생성자에서
, 당신은 cpls 사용하고 사용하기 전에 당신은 객체 cpls를 작성하지 않은

10-28 19:30:58.281: ERROR/AndroidRuntime(3371): FATAL EXCEPTION: main 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.app.parceblecheck/com.app.parceblecheck.Secondpage}: java.lang.NullPointerException 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2663) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2679) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.app.ActivityThread.access$2300(ActivityThread.java:125) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:2033) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.os.Handler.dispatchMessage(Handler.java:99) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.os.Looper.loop(Looper.java:123) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.app.ActivityThread.main(ActivityThread.java:4627) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at java.lang.reflect.Method.invokeNative(Native Method) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at java.lang.reflect.Method.invoke(Method.java:521) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at dalvik.system.NativeStart.main(Native Method) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371): Caused by: java.lang.NullPointerException 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.os.Parcel.readTypedList(Parcel.java:1555) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at com.zenprise.android.policy.TestSample.<init>(TestSample.java:41) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at com.zenprise.android.policy.TestSample.<init>(TestSample.java:38) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at com.zenprise.android.policy.TestSample$1.createFromParcel(TestSample.java:30) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at com.zenprise.android.policy.TestSample$1.createFromParcel(TestSample.java:1) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.os.Parcel.readParcelable(Parcel.java:1906) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.os.Parcel.readValue(Parcel.java:1771) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.os.Parcel.readMapInternal(Parcel.java:2008) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.os.Bundle.unparcel(Bundle.java:208) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.os.Bundle.getParcelable(Bundle.java:1100) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.content.Intent.getParcelableExtra(Intent.java:3396) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at com.app.parceblecheck.Secondpage.onCreate(Secondpage.java:27) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1047) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2627) 
10-28 19:30:58.281: ERROR/AndroidRuntime(3371):  ... 11 more 

답변

10

다음과 같은 예외를 얻을 ..
는이

같이해야
+0

생성자 내에서 초기화해야합니까? –

관련 문제