2012-04-18 2 views
0

내 응용 프로그램에는 onCreateOptionsMenu()를 구현하여 생성 된 거의 모든 활동에서 사용할 수있는 옵션 메뉴가 있습니다. 그러나 하나의 액티비티에는 PopupWindow가 있으며, PopupWindow에 포커스가있을 때 (적절한 작동을 위해 필요함) 메뉴 버튼을 두드리면 옵션 메뉴가 표시되지 않습니다.PopupWindow에 대한 옵션 메뉴를 만드는 방법은 무엇입니까?

PopupWindows에는 onCreateOptionsMenu() 함수가 없습니다. PopupWindow에 옵션 메뉴를 추가하는 다른 방법이 있습니까?

또는 사용자가 메뉴 버튼을 탭했을 때 나타나는 활동의 옵션 메뉴를 가져 오는 방법이 있습니까?

답변

0

나는이 문제를 메뉴 키를 가로 채고 해당 활동에 대해 openOptionsMenu()를 호출하여 해결했습니다. 여기에 키 리스너입니다 : 나는 당신이 일을 얻을 수있는 PopupWindow의 모든보기에이 키 리스너를 추가 할 생각

OnKeyListener mMenuKeyListener = new OnKeyListener() { 
    @Override 
    public boolean onKey(View view, int keyCode, KeyEvent event) { 
     if(keyCode==KeyEvent.KEYCODE_MENU) { 
      activity.openOptionsMenu(); 
      return true; 
     } else { 
      return false; 
     } 
    } 
}; 

, 그래서 나는 할 수있는 기능을 썼다 :

public void setupMenuKeyListenerRecursive(View v) { 
    if (v != null) { 
     try { 
      ViewGroup viewGroup = (ViewGroup)v; 
      int childCount = viewGroup.getChildCount(); 
      for (int index = 0; index < childCount; index++) { 
       View child = viewGroup.getChildAt(index); 
       setupMenuKeyListenerRecursive(child); 
      } 
     } catch (Exception e) { 
     } 
     v.setOnKeyListener(mMenuKeyListener); 
    } 
} 
관련 문제