I have one problem using ActivityGroup
. I have two activities inside an ActivityGroup
and both of them use a menu (overriding the onCreateOptionMenu and onOptionsItemSelected).
Well, the problem is that the second activity in the group doesn't show the menu when I press the menu Key. The first activity works fine showing the menu.
Any idea about this issue?
I have this code in child activity:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
boolean result = super.onCreateOptionsMenu(menu);
menu.add(0, MENU_REFRESH, 0, R.string.menu_refresh).setIcon(R.drawable.ic_menu_refresh);
return result;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case MENU_REFRESH:
Log.d(TAG,"REFRESH");
refresh();
return true;
}
return super.onOptionsItemSelected(item);
}
use this code on the tabGroupActivity
use the code which given below in both 2 child Activities
You need to override the menu methods in the activity group, and call the corresponding methods on the child activity. See this article: How to Create Options Menu on Child Activity inside an ActivityGroup
Another nice way of handling this is by using the ActivityGroup's LocalActivityManager. Get the local activity manager, get the current activity, and perform that activity's appropriate method:
Note: using this strategy, you must not call super.onCreateOptionsMenu from the child activity- doing so causes a stack overflow exception. I'm not sure what the purpose of calling the superclass's on* methods, as I've omitted them and have seen no negative results. (... yet)
Check this thread.
Yet another approach is to create the menu in the ActivityGroup root and then use public boolean onPrepareOptionsMenu(Menu menu) to clear and re-add menu items.
In ActivityGroup class:
In Activity: