Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Parcelable android中的空指针异常_Android_Parcelable - Fatal编程技术网

Parcelable android中的空指针异常

Parcelable android中的空指针异常,android,parcelable,Android,Parcelable,我想将数组对象的列表从活动发送到片段,这样我就可以创建parcelable类,传递数据,一切都可以正常工作,但当我按下home按钮时,它会在writeToParcel方法中抛出NPE。请给我一些建议 这是我的包裹课 public class SimilarAppsParcel implements Parcelable { List<SimilarAppsBean> similarAppsBeanList = null; SimilarAppsBean similarAppsBea

我想将数组对象的列表从活动发送到片段,这样我就可以创建parcelable类,传递数据,一切都可以正常工作,但当我按下home按钮时,它会在writeToParcel方法中抛出NPE。请给我一些建议

这是我的包裹课

public class SimilarAppsParcel implements Parcelable {

List<SimilarAppsBean> similarAppsBeanList = null;
SimilarAppsBean similarAppsBean = null;

public SimilarAppsParcel(List<SimilarAppsBean> similarAppsBeanList) {
    super();
    this.similarAppsBeanList = similarAppsBeanList;
}

public List<SimilarAppsBean> getParcelList() {
    return similarAppsBeanList;
}

private SimilarAppsParcel(Parcel in) {

    similarAppsBean = new SimilarAppsBean();

    similarAppsBean.setRating(in.readFloat());
    similarAppsBean.setPrice(in.readString());
    similarAppsBean.setTitle(in.readString());

    similarAppsBeanList.add(similarAppsBean);

}

@Override
public int describeContents() {
    return 0;
}

@Override
public void writeToParcel(Parcel parcel, int flags) {

    parcel.writeFloat(similarAppsBean.getRating());
    parcel.writeString(similarAppsBean.getPrice());
    parcel.writeString(similarAppsBean.getTitle());

    similarAppsBeanList.add(similarAppsBean);
}

public static final Parcelable.Creator<SimilarAppsParcel> CREATOR =
        new Parcelable.Creator<SimilarAppsParcel>() {
            public SimilarAppsParcel createFromParcel(Parcel in) {
                return new SimilarAppsParcel(in);
            }

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

指示
SimilarAppsParcel.java:50
parcel.writeFloat(similarAppsBean.getRating())
similarAppsBean
在您的代码中为null,或者
similarAppsBean.getRating()
为null,请检查那些
similarAppsBean
只是在这个构造函数中实例化的
SimilarAppsBeanCel(Parcel in)
,我认为它也必须在
SimilarAppsBeanCel(List SimilarAppsBeanSList)中实例化
因为这是您在
makeSimilarAppsTabParcel
中使用的构造函数。SimilarAppsParcel(Parcel in)此构造函数是私有的。
  private void makeSimilarAppsTabParcel(List<SimilarAppsBean> list) {

    // send the list of SimilarAppsBean to SimilarAppsParcel class to create the parcel
    SimilarAppsParcel similarAppsParcel=new SimilarAppsParcel(list);
    bundle_SimilarApps=new Bundle();
    bundle_SimilarApps.putParcelable("SimilarApps",similarAppsParcel);
}
   Bundle bundle=this.getArguments();
   SimilarAppsParcel similarAppsParcel=bundle.getParcelable("SimilarApps");
   List<SimilarAppsBean> list=similarAppsParcel.getParcelList();
 java.lang.NullPointerException
        at appstore.com.parcelable.SimilarAppsParcel.writeToParcel(SimilarAppsParcel.java:50)
        at android.os.Parcel.writeParcelable(Parcel.java:1254)
        at android.os.Parcel.writeValue(Parcel.java:1173)
        at android.os.Parcel.writeMapInternal(Parcel.java:591)
        at android.os.Bundle.writeToParcel(Bundle.java:1619)
        at android.os.Parcel.writeBundle(Parcel.java:605)
        at android.support.v4.app.FragmentState.writeToParcel(Fragment.java:136)
        at android.os.Parcel.writeTypedArray(Parcel.java:1102)
        at android.support.v4.app.FragmentManagerState.writeToParcel(FragmentManager.java:381)
        at android.os.Parcel.writeParcelable(Parcel.java:1254)
        at android.os.Parcel.writeValue(Parcel.java:1173)
        at android.os.Parcel.writeMapInternal(Parcel.java:591)
        at android.os.Bundle.writeToParcel(Bundle.java:1619)
        at android.os.Parcel.writeBundle(Parcel.java:605)
        at android.app.ActivityManagerProxy.activityStopped(ActivityManagerNative.java:2269)
        at android.app.ActivityThread$StopInfo.run(ActivityThread.java:3214)
        at android.os.Handler.handleCallback(Handler.java:725)
        at android.os.Handler.dispatchMessage(Handler.java:92)
        at android.os.Looper.loop(Looper.java:153)
        at android.app.ActivityThread.main(ActivityThread.java:5297)
        at java.lang.reflect.Method.invokeNative(Native Method)
        at java.lang.reflect.Method.invoke(Method.java:511)
        at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
        at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
        at dalvik.system.NativeStart.main(Native Method)