3

我已经阅读了Parcelable的文档,我只能找到原始数据类型的读写函数。

你如何读/写对象 数据类型的数据?

我指的“对象”是java.lang.Object

我对 Android 相当陌生,所以所有帮助表示赞赏。

4

2 回答 2

3

你如何读/写对象数据类型的数据?

因此 Parcelable 接口是官方推荐的如何通过活动传递数据的方式,但也有提供相同解决方案的 Serializable 接口。

现在也许很多人不同意我的观点,但我建议您使用Serializable 接口,现在您可以通过活动以非常简单的方式序列化对象(以及自定义对象)。

您需要做的就是使用Serializable 接口

public class MyObjectsWrapper implements Serializable {

  private Object obj1;
  private Object obj2;
  private MyCustomObject customObject;

  // getters and setters
}

还有一个用法:

// inserting data to Intent
Intent i = new Intent(context, Target.class);
i.putExtra("key", myObj);

// retrieving
MyObject obj = getIntent().getSerializableExtra("key");

我推荐Serializable 接口的原因是它更易于实现和理解。Parcelable 接口需要编写更多代码(这对我来说很烦人),如果您有很多对象,则需要时间来实现它并且时间就是金钱:)

于 2013-10-17T10:53:43.507 回答
-1
public class Teacher implements Parcelable {
String name;
int age;


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

@Override
public void writeToParcel(Parcel dest, int flags) {
    dest.writeString(this.name);
    dest.writeInt(this.age);
}

public Teacher() {
}

protected Teacher(Parcel in) {
    this.name = in.readString();
    this.age = in.readInt();
}

public static final Creator<Teacher> CREATOR = new Creator<Teacher>() {
    @Override
    public Teacher createFromParcel(Parcel source) {
        return new Teacher(source);
    }

    @Override
    public Teacher[] newArray(int size) {
        return new Teacher[size];
    }
};
}
于 2016-06-21T03:08:41.453 回答