Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/181.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
Java 通过Intent传递空对象后获取空对象。我的对象类实现了Parcelable接口。_Java_Android_Android Intent_Nullpointerexception_Parcelable - Fatal编程技术网

Java 通过Intent传递空对象后获取空对象。我的对象类实现了Parcelable接口。

Java 通过Intent传递空对象后获取空对象。我的对象类实现了Parcelable接口。,java,android,android-intent,nullpointerexception,parcelable,Java,Android,Android Intent,Nullpointerexception,Parcelable,活动1,我从何处发送我的包裹对象: Intent intent = new Intent(JobFieldAttribute.this, JobCamera.class); intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); Bundle mBundle = new Bundle(); mBundle.putParcelable("FieldData", fieldData); mBundle.putSer

活动1,我从何处发送我的包裹对象:

Intent intent = new Intent(JobFieldAttribute.this, JobCamera.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Bundle mBundle = new Bundle();                     
mBundle.putParcelable("FieldData", fieldData); 
mBundle.putSerializable("JobTransaction",jobTransaction);
mBundle.putString("imgPos", 0+"");
intent.putExtra("parce",mBundle);
startActivity(intent);
super.onCreate(savedInstanceState); 
this.requestWindowFeature(Window.FEATURE_NO_TITLE);
this.setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
setContentView(R.layout.activity_job_camera);
FieldData fieldData = (FieldData) getIntent().getParcelableExtra("fieldData");
我的对象类:

public class FieldData implements Parcelable {
private Integer id;
private String value;
private Integer job_transaction_id;
private Integer field_attribute_master_id;
private Boolean required;
private View view;
private String viewType;
private String viewLabel;
private String viewSubLabel;
private String viewHelpText;

//All Getter setter methods

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

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeInt(0);
    dest.writeString(value);
    try{
        dest.writeInt(job_transaction_id);
    }
    catch(Exception e){dest.writeInt(0);}
    dest.writeInt(field_attribute_master_id);
    try{
        dest.writeByte((byte) (required ? 1 : 0));
    }
    catch(Exception e){dest.writeByte((byte)0);}
    try{
        dest.writeString(viewType);
        }
    catch(Exception e){dest.writeString("NOVIEWTYPE");}
    try{
        dest.writeString(viewLabel);
        }
    catch(Exception e){dest.writeString("NO LABEL");}
    try{
        dest.writeString(viewSubLabel);
        }
    catch(Exception e){dest.writeString("NO SUB LABEL");}
    try{
        dest.writeString(viewHelpText);
        }
    catch(Exception e){dest.writeString("NO HELP TEXT");}
}   

public static final Parcelable.Creator<FieldData> CREATOR = new Parcelable.Creator<FieldData>()  {
    @Override
    public FieldData createFromParcel(Parcel in) {
        FieldData fieldData = new FieldData();
        fieldData.id = in.readInt();
        Log.i("Pracel in", ">> " + in.readString());
        fieldData.value = in.readString();
        fieldData.job_transaction_id = in.readInt();
        fieldData.field_attribute_master_id = in.readInt();           
        fieldData.required = in.readByte() != 0;
        fieldData.viewType = in.readString();
        fieldData.viewLabel = in.readString();
        fieldData.viewSubLabel = in.readString();
        fieldData.viewHelpText = in.readString();
        return fieldData;
    }

    @Override
    public FieldData[] newArray(int size) {
        return new FieldData[size];
    }
};
当我打印fieldData对象时,我得到一个NullPointerException。我无法理解这个错误的原因。 我做错了什么? 我是android开发的新手,使用Parcelable接口通过Intent传递对象。
请提供帮助。

您正在将
捆绑
放在您的
目的
附加项中,而不是直接将
字段数据
放入。因此,您的代码应该如下所示:

getIntent().getBundleExtra("parce").getParcelableExtra("fieldData");

您正在放置
FieldData
,但试图取回
FieldData
。结合@Dmitry Zaitsev的回答:
getIntent().getBundleExtra(“parce”).getParcelableExtra(“FieldData”)

在发送IntentGetEvent()的活动中适当声明您的fielddata。getBundleExtra(“parce”)。getParcelableExtra(“fielddata”)@Thealprashant fieldData的声明远远超出了预期。添加此getIntent()后的事件。getBundleExtra(“parce”)。getParcelableExtra(“fieldData”);对象仅为空。