1

私は、あるアクティビティから別のアクティビティに渡すつもりの次のクラスを持っています:

public class Ad extends ListItem implements parcelable{
    private String _type;
    private String _recordID;
    private String _line1;
    private String _line2;
    private String _line3;
    private String _line4;
    private String _url;
    private IOnUiNeedToUpdateListener _listener;
    private boolean _notActive = false;
    private String _alertText;
    private Double _longitude;
    private Double _latitude;
}

そのようなオブジェクトの配列をあるアクティビティから別のアクティビティに渡したいです。ただし、すべてのフィールドを渡す必要はありません。

希望の畑だけを小包にして発送することはできますか?

4

2 に答える 2

2

に書き込むのはあなたのコードでParcelあり、から読み取るのはあなたのコードですParcel。だから基本的にyes。好きなように書くことができます。すべてのメンバーの内容、一部の内容、メンバーなし、オブジェクトの状態を復元するために使用するその他の値など。

于 2013-08-19T14:36:47.343 に答える
2

このようにクラスを設計してみてください..

public class Form implements Parcelable {

private String formdata1;
private String formdata2;
private String formdata3;
private String formdata4;

public Form() {
}

public Form(Parcel in) {
    setFormdata1(in.readString());
    setFormdata2(in.readString());
    setFormdata3(in.readString());
    setFormdata4(in.readString());
}

public String getFormdata1() {
    return formdata1;
}

public void setFormdata1(String formdata1) {
    this.formdata1 = formdata1;
}

public String getFormdata2() {
    return formdata2;
}

public void setFormdata2(String formdata2) {
    this.formdata2 = formdata2;
}

public String getFormdata3() {
    return formdata3;
}

public void setFormdata3(String formdata3) {
    this.formdata3 = formdata3;
}

public String getFormdata4() {
    return formdata4;
}

public void setFormdata4(String formdata4) {
    this.formdata4 = formdata4;
}

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

@Override
public void writeToParcel(Parcel in, int arg1) {
    in.writeString(getFormdata1());
    in.writeString(getFormdata2());
    in.writeString(getFormdata3());
    in.writeString(getFormdata4());
}

public static final Parcelable.Creator<Form> CREATOR = new Parcelable.Creator<Form>() {

    @Override
    public Form createFromParcel(Parcel in) {
        return new Form(in);
    }

    @Override
    public Form[] newArray(int size) {
        return new Form[size];
    }

};

}

于 2013-08-19T14:38:28.717 に答える