2013-05-30 4 views
0

하나의 탭에 여러 활동이있는 tabActivity가 있습니다.android openPanel 메뉴가 비어 있습니다.

이 ActivityStack.java

public class ActivityStack extends ActivityGroup { 
.. 

@Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     // // what is the current activity? 
     menu.add(0, 0, 0, "holder"); 

    return true; 

} 

@Override 
public boolean onPrepareOptionsMenu(Menu menu) { 
    // start a new 
    menu.clear(); 
    // add some menu options 
    getLocalActivityManager().getCurrentActivity().onPrepareOptionsMenu(menu); 
    return super.onPrepareOptionsMenu(menu); 

} 

안드로이드 4.2

에 작동하지 않는 다음 코드 안드로이드 2.3에서 작동하지만 .. Activity1Tab1.java

here I have a button from where I am calling Activity2Tab1.java onClickListener 
Intent acIntent = new Intent(); 
        acIntent.setClass(getParent(), 
          Activity2Tab1.class); 
        ActivityStack activityStack = (ActivityStack) getParent(); 
        activityStack.push("SecondActivity", acIntent); 

Activity2Tab1.java

.. 
here I have multiple layouts...defined 
@Override 
    public boolean onPrepareOptionsMenu(Menu menu) 
    { //add menus or inflate here 
     Log.d(TAG, "onPrepareOptionMenu"); 
     if (!isMainMenuVisible) { 
      pushMainMenuUp(); 
     } else { 
      pushMainMenuDown(); 
     } 
     return true; 
    } 

도움이 필요합니다 !!!

Activity1Tab1 또는 Activity2Tab1 오버라이드 onKeyUp에있어서의() 호출되지 않는다. 유일한 메서드는 StackActivity에서 가져온 것입니다. 왜?

답변

1

일부 연구가 끝나고이 코드가 작동하도록 생각한 후. 대신 사용

onPrepareOptionMenu (메뉴)와 onCreateOptionMenu (메뉴) 내가 StackActivity에서 다음과 같은 방법을 무시했습니다 :

@Override 
public boolean onKeyUp(int keyCode, KeyEvent event) { 
    Log.d(TAG, ""+event.getAction()); 
    if (keyCode == KeyEvent.KEYCODE_MENU) { 
     Log.d(TAG, "MENU_BUTTON_PRESSED"); 

     if (!isMainMenuVisible) { 
      pushMainMenuUp(); 
     } else { 
      pushMainMenuDown(); 
     } 
    } 
    return super.onKeyUp(keyCode, event); 

} 
:
@Override 
    public boolean onKeyUp(int keyCode, KeyEvent event) { 
     Log.d(TAG, keyCode+""); 
     getLocalActivityManager().getCurrentActivity().onKeyUp(keyCode, event); 
      return super.onKeyUp(keyCode, event); 
    } 

및 Activity1Tab1 및 Activity2Tab1 I에서

이 방법을했다가
관련 문제