使用Parcelable出现的几个问题
1.Caused by: android.os.BadParcelableException: ClassNotFoundException when unmarshalling : com.MyClass
原因:这个类我是通过将其放入Bundle中传递的,所以在从Bundle中取的时候需要先设置ClassLoader:
mBundle.setClassLoader(MyClass.class.getClassLoader()); myClass = mBundle.getParcelable( "MY_CLASS" );
2.Caused by: java.lang.NullPointerException: expected receiver of type com.yourpackagename.MyClass, but got null
W/System.err(3558): at java.lang.reflect.Field.getField(Native Method)
W/System.err(3558): at java.lang.reflect.Field.get(Field.java:269)
W/System.err(3558): at android.os.Parcel.readParcelable(Parcel.java:1955)
W/System.err(3558): at android.os.Parcel.readParcelableArray(Parcel.java:2008)
原因:是因为在 class :MyClass中的CREATOR成员变量 没有定义成静态的原因
public static final Parcelable.Creator<MyClass> CREATOR = new Parcelable.Creator<MyClass>() {
....
}