Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to pass object to an activity?

Tags:

android

I have two activities, NewTransferMyOwn.java and FromAccount.java

When I go from NewTransferMyOwn.java to FromAccount.java, I do write code as following

Intent i = new Intent(NewTransferMyOwn.this, FromAccount.class);
startActivityForResult(i, FROM_ACCOUNT);

When I do come back from FromAccount.java to NewTransferMyOwn.java, then I want to pass a complete object of class Statement

I do write code as

Statement st = ItemArray.get(arg2);//ItemArray is ArrayList<Statement>, arg2 is int
Intent intent = new Intent(FromAccount.this,NewTransferMyOwn.class).putExtra("myCustomerObj",st);

I do get error as following on putExtra,

Change to 'getIntExtra'

as I do, there is again casting st to int, what is issue over here, how can I pass Statement object towards back to acitivity?

like image 762
Chatar Veer Suthar Avatar asked Jan 17 '23 22:01

Chatar Veer Suthar


1 Answers

You can also implement your custom class by Serializable and pass the custom Object,

public class MyCustomClass implements Serializable
{
  // getter and setters
}

And then pass the Custom Object with the Intent.

intent.putExtra("myobj",customObj);

To retrieve your Object

Custom custom = (Custom) data.getSerializableExtra("myobj");

UPDATE:

To pass your custom Object to the previous Activity while you are using startActivityForResult

Intent data = new Intent();
Custom value = new Custom();
value.setName("StackOverflow");
data.putExtra("myobj", value);
setResult(Activity.RESULT_OK, data);
finish();

To retrieve the custom Object on the Previous Activity

if(requestCode == MyRequestCode){
     if(resultCode == Activity.RESULT_OK){
         Custom custom = (Custom) data.getSerializableExtra("myobj");
         Log.d("My data", custom.getName()) ;
         finish();
     }
 }
like image 77
Lalit Poptani Avatar answered Jan 31 '23 03:01

Lalit Poptani