Accessing instance of the parent activity?

Suppose I have a class first.java (activity class) and I start another activity in this class (second.java - activity class).

How can I access the instance of first.java from second.java?

Can someone give me a good explanation on this... An example would be great...


Solution 1:

If you need your second activity to return some data to your first activity I recommend you use startActivityForResult() to start your second activity. Then in onResult() in your first activity you can do the work needed.

In First.java where you start Second.java:

Intent intent = new Intent(this, Second.class);
int requestCode = 1; // Or some number you choose
startActivityForResult(intent, requestCode);

The result method:

protected void onActivityResult (int requestCode, int resultCode, Intent data) {
  // Collect data from the intent and use it
  String value = data.getString("someValue");
}

In Second.java:

Intent intent = new Intent();
intent.putExtra("someValue", "data");
setResult(RESULT_OK, intent);
finish();

If you do not wish to wait for the Second activity to end before you do some work in the First activity, you could instead send a broadcast which the First activity reacts to.

Solution 2:

You can simply call getParent() from the child activity.

I have no clue why other answers are so complicated.

Solution 3:

Only this should work

class first
{
    public static first instance;
    oncreate()
    {
        instance = this;
    }
}

first.instance is the required thing that is accessible from the second class