2011-03-02 4 views
2

새로운 Android 3.0 시스템 표시 줄에 내 옵션 메뉴를 표시하려고합니다. 이 동작을 Notepadv3 자습서로 작업 할 수 있습니다. 그러나 거의 동일한 기능을 구현할 때 메뉴는 위의 작업 표시 줄에 표시되지만 시스템 표시 줄에는 표시되지 않습니다. 어떤 아이디어? 나는 또한 creating menu documentation에 의해 시스템 권장 이러한 메뉴 기능을 구현하려고했습니다시스템 표시 줄에 표시 할 옵션 메뉴를 가져옵니다

public class AACUser extends Activity { 


private static final int ADMIN_ID = Menu.FIRST; 

public boolean onCreateOptionsMenu(Menu menu) { 
    super.onCreateOptionsMenu(menu); 
    menu.add(0, ADMIN_ID, 0, R.string.menu_admin); 
    return true; 
} 


@Override 
public boolean onMenuItemSelected(int featureId, MenuItem item) { 
    switch(item.getItemId()) { 
     case ADMIN_ID: 
      enterAdminMode(); 
      return true; 
     default: 
      return super.onMenuItemSelected(featureId, item); 
    } 
} 


} 

:

public boolean onCreateOptionsMenu(Menu menu) { 
     MenuInflater inflater = getMenuInflater(); 
     inflater.inflate(R.menu.user_menu, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     // Handle item selection 
     switch (item.getItemId()) { 
     case R.id.menu_adminMode: 
      enterAdminMode(); 
      return true; 
     default: 
      return super.onOptionsItemSelected(item); 
     } 
    } 

하지만 차이 : 첨부

내 응용 프로그램에 대한 적절한 코드가 여전히 표시 옵션은 시스템 모음이 아니라 작업 표시 줄의 오버플로에 있습니다.

+0

"메뉴 만들기"문서에서 지시 한대로 시도했지만 아무 소용이 없습니다. – Ian

+0

11에서 targetSdkVersion을 10으로 줄이면 문제가 해결됩니다. 그러나, 나는 허니컴에만이 애플 리케이션을 대상으로하고 싶습니다, 따라서 나는 여전히 영구적 인 해결책이 없습니다. – Ian

답변

2

Android 3.0부터 옵션 메뉴는 필요하지 않습니다 (더 이상 사용되지 않는 경우). API 11 (Android 3.0) 이상을 타겟팅하는 경우 앱에서 옵션 메뉴없이 작동하므로 시스템 표시 줄에 표시되지 않습니다. 시스템 표시 줄의 옵션 메뉴는 이전 응용 프로그램과의 하위 호환성을위한 것입니다. 새로운 애플리케이션에는 작업 표시 줄에서 제공하는 것과 같은 옵션에 액세스 할 수있는 또 다른 여유가 있어야합니다.

+0

흠 .. 알았어. 방금 시스템 메뉴에있는 옵션 메뉴 버튼으로 전체 화면을 실행할 수있게되었습니다. 어쨌든이 기능을 수동으로 구현하려면? – Ian

+1

API 11 이상을 타겟팅하지 않습니다. – hackbod

0

시스템 바의 메뉴 버튼은 이전 버전과의 호환성을 위해서만 사용됩니다. 따라서 Honeycomb 용 앱을 디자인하려면 메뉴가 있어야하고 작업 표시 줄에 있어야합니다.

관련 문제