Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Make the "up" button behave like the "back" button on Android

The Android app design I'm working with calls for the "Up" button to behave the same way the "Back" button behaves, but I'm not sure how to make that happen.

I know that android:parentActivityName must be specified for the "Up" button to be visible on an activity, but specifying a fixed parent activity doesn't really make sense for the activity. Imagine this scenario with activities A, B, and C:

  1. Launch into activity A, it contains two buttons: each taking you to activities B and C, respectively.
  2. Tap the button for activity B.
  3. Transition to activity B. it contains two buttons: each taking you to activities A and C, respectively.
  4. Tap the button for activity C.
  5. Transition to activity C.
  6. Tap the "up" button, you should be taken to activity B.
  7. On activity B now: tap the button for activity A.
  8. Transition to activity A.
  9. Tap the "up" button, you should be taken to activity B.
  10. On activity B Tap the "up" button, you should be taken to activity A.
  11. On activity A now: tap the button for activity C.
  12. Transition to activity C.
  13. Tap the "up" button, you should be taken to activity A.

If I were to specify android:parentActivityName for each activity, it might make sense to have B and C's parent activity be A, but this means that each time we hit the "up" button from activities B or C, we land at activity A (and that's not always what is supposed to happen).

Does anybody have experience with this type of thing?

like image 831
JasonWyatt Avatar asked Apr 08 '14 20:04

JasonWyatt


People also ask

How do I get the back arrow on my Android?

Here is a simple method to add a back arrow to other Activity to come back to MainActivity. To enter a new activity we create an Intent then start a new Activity using that intent instance using the startActivity method.

What is the difference between the up button and back button?

When you press the Back button, the current destination is popped off the top of the back stack, and you then navigate to the previous destination. The Up button appears in the app bar at the top of the screen.


1 Answers

from all three of your activities add the following

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

when you press the up button on your app it will invoke onOptionsItemSelected with the id of android.R.id.home just catch that case and manually call onBackPressed()

like image 174
Eluvatar Avatar answered Oct 04 '22 04:10

Eluvatar