- 解决了问题 -
我想将“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;
}