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
생성자 내에서 초기화해야합니까? –