I have a class which has implemented Parcelable. Can I do something like the following to create a new instance of a class?:
Foo foo = new Foo(\"a\", \"b\", \"c\
Yes, assuming that your parcel implementation correctly writes and reads all of the variables in Foo, that should create a clone.
There is a shorter way:
Foo foo1 = new Foo("a", "b", "c");
Parcel p = Parcel.obtain();
p.writeValue(foo1);
p.setDataPosition(0);
Foo foo2 = (Foo)p.readValue(Foo.class.getClassLoader());
p.recycle();
I had the same problem and here is my solution:
Parcel p = Parcel.obtain();
foo.writeToParcel(p, 0);
p.setDataPosition(0); // <-- this is the key
Foo foo2 = Foo.CREATOR.createFromParcel(p);
p.recycle();