-1

this class has a inner class so how to parcel a class with the inner class?

public class UserModel 
{
    private User user;

    public User getUser() {
        return user;
    }

    public class User {
        @SerializedName("id")
        @Expose
        private int id;

        @SerializedName("first_name")
        @Expose
        private String first_name;

        @SerializedName("last_name")
        @Expose
        private String last_name;

        @SerializedName("email")
        @Expose
        private String email;

        @SerializedName("mobile_no")
        @Expose
        private String mobile_no;

        @SerializedName("created_at")
        @Expose
        private String created_at;

        @SerializedName("updated_at")
        @Expose
        private String updated_at;

        @SerializedName("user_role_id")
        @Expose
        private int user_role_id;

        public int getId() {
            return id;
        }

        public String getFirst_name() {
            return first_name;
        }

        public String getLast_name() {
            return last_name;
        }

        public String getEmail() {
            return email;
        }

        public String getMobile_no() {
            return mobile_no;
        }

        public String getCreated_at() {
            return created_at;
        }

        public String getUpdated_at() {
            return updated_at;
        }

        public int getUser_role_id() {
            return user_role_id;
        }
    }
}
Cœur
  • 37,241
  • 25
  • 195
  • 267
Gowsik
  • 1,096
  • 1
  • 12
  • 25

2 Answers2

0

You have to make the inner class either Parcelable or Serializable

public class UserModel implements Parcelable {

    private User user;
    public User getUser() {
        return user;
    }

    public class User implements Serializable{


        @SerializedName("id")
        @Expose
        private int id;

        @SerializedName("first_name")
        @Expose
        private String first_name;

        @SerializedName("last_name")
        @Expose
        private String last_name;

        @SerializedName("email")
        @Expose
        private String email;

        @SerializedName("mobile_no")
        @Expose
        private String mobile_no;

        @SerializedName("created_at")
        @Expose
        private String created_at;

        @SerializedName("updated_at")
        @Expose
        private String updated_at;

        @SerializedName("user_role_id")
        @Expose
        private int user_role_id;

        public int getId() {
            return id;
        }

        public String getFirst_name() {
            return first_name;
        }

        public String getLast_name() {
            return last_name;
        }

        public String getEmail() {
            return email;
        }

        public String getMobile_no() {
            return mobile_no;
        }

        public String getCreated_at() {
            return created_at;
        }

        public String getUpdated_at() {
            return updated_at;
        }

        public int getUser_role_id() {
            return user_role_id;
        }
    }

    protected UserModel(Parcel in) {
        user = (User) in.readValue(User.class.getClassLoader());
    }

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

    @Override
    public void writeToParcel(Parcel dest, int flags) {
        dest.writeValue(user);
    }

    @SuppressWarnings("unused")
    public static final Parcelable.Creator<UserModel> CREATOR = new Parcelable.Creator<UserModel>() {
        @Override
        public UserModel createFromParcel(Parcel in) {
            return new UserModel(in);
        }

        @Override
        public UserModel[] newArray(int size) {
            return new UserModel[size];
        }
    };
}
Kunu
  • 5,078
  • 6
  • 33
  • 61
  • @GowsikCristiano If it solved your problem either you can up-vote or accept it. Thanks. – Kunu Feb 19 '16 at 05:20
-1

You want both classes to implement the Parcelable interface.

Sources: this

Community
  • 1
  • 1