I am trying to send data from activity to other via intent. Sending String or integer work perfectly fine. But when I add Parecelable object in same intent ,it always return null for Strings , Integers and Object. Below is my code for setting data to intent.
Intent intent = new Intent(SplashActivity.this, MainActivity.class);
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
intent.putExtra("SomeText", "sometext");
intent.putExtra("itemId", itemId);
intent.putExtra("someuser",user);
startActivity(intent);
And in other activity I am getting values as:
String som = getIntent().getStringExtra("SomeText");
int itemird = getIntent().getIntExtra("itemId", 0);
User user = getIntent().getParcelableExtra("someuser");
I also have tried different other solutions as this and this and this
Can anybody here suggest me what my mistake is or any better solution?
So this is my Parcelable class
public class User implements Parcelable{
private int mData;
private String username;
private String imagePath;
private String userId;
public String getUserId() {
return userId;
}
public void setUserId(String userId) {
this.userId = userId;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public void setImagePath(String imagePath) {
this.imagePath = imagePath;
}
public String getImagePath() {
return imagePath;
}
public User() {
}
public User(String username, String userId) {
this.username = username;
this.userId = userId;
}
public User(String username) {
this.username = username;
}
@Override
public int describeContents() {
return 0;
}
@Override
public void writeToParcel(Parcel dest, int flags) {
}
public static final Parcelable.Creator<User> CREATOR = new Parcelable.Creator<User>() {
public User createFromParcel(Parcel in) {
return new User(in);
}
public User[] newArray(int size) {
return new User[size];
}
};
private User(Parcel in) {
mData = in.readInt();
}
}