TheQ
TheQ

Reputation: 2019

How to go back to previous activite(s)?

so i have Activity A,B, and C. Activity A & B both go to activity C. When i am on activity C and I press the back home button on mySupportActionBar, I want to return to the state of activity (from the state i left it in) I came from. How would i accomplish this?

Here is my onOptionsItemSelected(). So currently, it goes back to the designated parent activity i assigned in manifest to avoid my app from crashing. Because the parent activites require strings from intents.

@Override
    public boolean onOptionsItemSelected(MenuItem item)
    {
        int id = item.getItemId();
        if(id == android.R.id.home)
        {
            NavUtils.navigateUpFromSameTask(this);
        }
        return super.onOptionsItemSelected(item);
    }

I would also love to accomplish this onBackPressed().

enter image description here

Upvotes: 2

Views: 587

Answers (3)

ZeroOne
ZeroOne

Reputation: 9117

You also can use setNavigationOnClickListener on toolbar to trigger back button.

@Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_filter_category);

        setSupportActionBar(toolbar);

        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setDisplayShowTitleEnabled(false);

            //back button action
            toolbar.setNavigationOnClickListener(view -> finish());
        }
    }

Upvotes: 1

Alejandro Cumpa
Alejandro Cumpa

Reputation: 2363

The back arrow button is the "home" button when you're in a inner activity so you could finish the inner activity or maybe just call the back button

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            onBackPressed();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

Upvotes: 2

John Joe
John Joe

Reputation: 12803

Use android.R.id.home

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            finish();
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

Upvotes: 1

Related Questions