4

I can create an Option Menu for a single Activity. But now I want to create a Logout option in the menu which should be available on all Activities in the App. Is there a possible way to create an Option menu once for an Application?

Jonas
  • 121,568
  • 97
  • 310
  • 388
Praveen
  • 90,477
  • 74
  • 177
  • 219

1 Answers1

11

I answered this once on SO, but i forgot where...so here i go again.

Its quite Straightforward.

Create a BaseActivity (extends Activity). Implement all your Options Menu Code in this. Override your onOptionsMenu,etc...

Now, For all your other Activities, instead of extending Activity, extend BaseActivity. You'll end up deriving all the options menu code...nifty eh?

Code once, use multiple times...

OOP for the win!

Edit: As WarrenFaith points out, you'll need to create BaseListActivity and BaseMapActivity if you're using ListActivity and MapActivity.

st0le
  • 33,375
  • 8
  • 89
  • 89
  • 1
    Dont forget to do that for the other types of activity like ListActivity and MapActivity – WarrenFaith Sep 17 '10 at 07:31
  • Nice Idea. But I want it on `MapActivity` also. My guess: what about the class which extends the Application class. In that class can we create the option Menu? – Praveen Sep 17 '10 at 07:46
  • 1
    I was about to say the same as Praveen... :-) – ggomeze Sep 17 '10 at 07:49
  • @Praveen, i already appended the solution. Check the edit. You cannot override Options menu in the `Application` class, it's not defined there. – st0le Sep 17 '10 at 07:59
  • If you have a ListAcivity and regular activity, is there a way to do this WITHOUT have 2 sets of menu code? – Chris Muench Jan 29 '13 at 19:46