Android:使用parcelable对象恢复数据

时间:2014-03-01 21:14:52

标签: android object parcelable

- 解决了问题 -

我想将“Activity1”中的对象发送到我的“Activity2”。要做到这一点,我正在使用Parcelable。

我有一个实现Parcelable的类User。

在我的第一个活动中,我创建了一个用户(用于测试),如下所示:

            User userTest = new User("Name", "FirstName", "AdressTest", 1, "99999", "Nice guy", "pic.jpg",null);

我打电话给下一个活动:

     Intent intent = new Intent(
        MainActivity.this,
        UserProfile.class
    );
    intent.putExtra("userParce", userTest);
    startActivity(intent);

问题是,当我想在我的Activity2中显示该用户的数据时,我会这样做:

   Intent intent = getIntent();
   User user_current = intent.getExtras().getParcelable("userParce");
   Log.i("User Name", user_current.getName());
   Log.i("User FirstName", user_current.getFirstName());
   Log.i("User Adress", user_current.getAdress());
   etc...

问题是只有“姓名”和名字显示,其他人是“空”,我不明白为什么:'(

有人帮我吗?

PS:

我没有显示所有代码,因为它没用,因此,只有一个构造函数和我的getter。

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

    @Override
public void writeToParcel(Parcel dest, int flags)
{
    dest.writeString(name);
    dest.writeString(firstName);
    dest.writeString(adress);
    dest.writeInt(numberTest);
    dest.writeString(code);
    dest.writeString(description);
    dest.writeString(image);
    dest.writeList(listObject);
}

        public static final Parcelable.Creator<User> CREATOR = new      Parcelable.Creator<User>()
{
    @Override
    public UsercreateFromParcel(Parcel source)
    {
        return new User(source);
    }

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

    public static Parcelable.Creator<User> getCreator()
{
    return CREATOR;
}

    public User(Parcel in) {
    this.name= in.readString();
    this.firstName= in.readString();
    this.numberTest= in.readInt();
    this.code = in.readString();
    this.description = in.readString();
    this.image = in.readString();
    this.listObject = null;
}

0 个答案:

没有答案