Whiz Whiz - 3 months ago 74
Android Question

Parcelable protocol requires a Parcelable.Creator object called CREATOR (I do have CREATOR)

I am trying to pass Parcelable data from one intent to another and this is the error I am getting:

08-31 14:12:22.709: E/AndroidRuntime(9931): FATAL EXCEPTION: main
08-31 14:12:22.709: E/AndroidRuntime(9931): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.matejsoftware.cardscoretracker/com.matejsoftware.cardscoretracker.Igra}: android.os.BadParcelableException: Parcelable protocol requires a Parcelable.Creator object called CREATOR on class com.matejsoftware.cardscoretracker.Novaigra$Player

The thing is: I do have Parcelable.Creator object. I'll post the whole Parcelable code below:

public class Player implements Parcelable{
String name;
int score;
public int describeContents() {
// TODO Auto-generated method stub
return 0;
public void writeToParcel(Parcel dest, int flags) {

public Player(Parcel source){
score = source.readInt();
name = source.readString();

public Player(int score, String name){
this.score = score;
this.name = name;

public class MyCreator implements Parcelable.Creator<Player> {

public Player createFromParcel(Parcel source) {
return new Player(source);

public Player[] newArray(int size) {
return new Player[size];


Is there somethin wrong with the CREATOR? The app crashes as soon as I click the button to start the next activity.

This is how I "retrieve" Parcelable data in the second activity:

//global variable
ArrayList<Player> playersParceledData;

//This is in onCreate
playersData = getIntent();
playersParceledData = playersData.getParcelableArrayListExtra("parceledData");

Also, this is how I put class objects to ParcelableArrayListExtra:

Player newPlayer = new Player(0, text);
zacniIgro.putParcelableArrayListExtra("parceledData", playersParceledData);


my dear friends you are not maintain the sequence in parcel

in method writeToParcel you first put String but in Constructor you take first integer it is not valid in android, I have give you code which makes correct order to putting data in to Parcel

visit this link

so correct code is

just Replace with

public class FriendDetail implements Parcelable {

private String full_name;
private int privacy;

public HeatFriendDetail(Parcel in) {
    this.full_name = in.readString();
    this.privacy = in.readInt();

public HeatFriendDetail() {


public void writeToParcel(Parcel dest, int flags) {


public static final Parcelable.Creator CREATOR = new Parcelable.Creator() {
    public HeatFriendDetail createFromParcel(Parcel in) {
        return new HeatFriendDetail(in);

    public HeatFriendDetail[] newArray(int size) {
        return new HeatFriendDetail[size];