Home » Android » Use Parcelable to pass an object from one android activity to another

Use Parcelable to pass an object from one android activity to another

Posted by: admin June 15, 2020 Leave a comment


I want to do this

class A extends Activity{
       private class myClass{
       myClass obj = new myClass();

      intent i = new Intent();
      Bundle b = new Bundle();
      b.putParcelable(Constants.Settings, obj); //I get the error The method putParcelable(String, Parcelable) in the type Bundle is not applicable for the arguments (int, A.myClass)

How do I use Parcelable to pass obj to activity B?

How to&Answers:

As the error suggests, you need to make your class (myClass in this case) implement Parcelable. If you look at the documentation for Bundle, all the putParcelable methods take either a Parcelable or a collection of them in some form. (This makes sense, given the name.) So if you want to use that method, you need to have a Parcelable instance to put in the bundle…

Of course you don’t have to use putParcelable – you could implement Serializable instead and call putSerializable.


Create your class and implements Serializable:

private class myClass implements Serializable  {

And do like:

myClass obj = new myClass();
Intent aActivity = (A.this, B.class);
intent.putExtra("object", obj);

On Receiving side:

myClass myClassObject = getIntent().getSerializableExtra("object");  


Parcelable is pain in writing code but more cost effective than Serializable. Have a look at the given below link –

Parcelable Vs Serializable