Skip to content Skip to sidebar Skip to footer

How To Implement Getsupportparentactivityintent() To Set The Activity Dynamically For Up-button In Android

How to know which parent activity calls the child activity in android? Assume I have three activities A,B and C. A and B are parent activities. C is the child activity. That means

Solution 1:

I have found how to implement getSupportParentActivityIntent() correctly and using it we can dynamically set the activity to up-button in android. Here how I have achieved it.

Assume we have two activities. Activity A and B. A is the parent activity and B is the child.

So A need to create an intent to start B. It should pass an extra data which is the name of the parent activity. Here in our example it should be 'A'. Here is the code,

Intent intent = newIntent();
intent.putExtra("ParentClassName","A");
startActivity(intent.setClass(A.this, B.class)); //we are starting activity 'B'

Now in activity B we need to override getSupportParentActivityIntent() and it should look like this,

@Overridepublic Intent getSupportParentActivityIntent() {
    Intent parentIntent= getIntent();
    StringclassName= parentIntent.getStringExtra("ParentClassName"); //getting the parent class name

    Intent newIntent=null;
    try {
         //you need to define the class with package name
         newIntent = newIntent(B.this,Class.forName("com.myapplication."+className));

    } catch (ClassNotFoundException e) {
        e.printStackTrace();
    }
    return newIntent;
}

Solution 2:

In ur child activity use like

@Override
public Intent getSupportParentActivityIntent() {
    String from = getIntent().getExtras().getString("from");
    Intent newIntent = null;
    if(from.equals("MAIN")){
        newIntent = new Intent(this, MainActivity.class);
    }elseif(from.equals("FAV")){
        newIntent = new Intent(this, FavoriteActivity.class);
    }
    ...
    return newIntent;
}

before that u need to put from extra value for each of ur source activity say from FavoriteActivity

i.putExtra("from", "FAV");

and for MainActivity use

i.putExtra("from", "MAIN");

Post a Comment for "How To Implement Getsupportparentactivityintent() To Set The Activity Dynamically For Up-button In Android"