ActionBarSherlock-4.1.0-0을 사용 중이고 하드웨어 메뉴 버튼을 사용하여 내 하위 메뉴를 작업 표시 줄에 열고 싶습니다. 업데이트 계획을 세우고 있으며 이전 버전에서는 "정상적인"메뉴를 사용했습니다. 사용자가 새로운 디자인에 익숙해 지도록 돕고 싶습니다. 나는 하위 메뉴와 메인 메뉴 있어요 :ActionBarSherlock : 메뉴 버튼이있는 하위 메뉴 열기
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater i = getSupportMenuInflater();
i.inflate(R.menu.main_menu, menu);
SubMenu subMenu = (SubMenu) menu.findItem(R.id.actionbar_submenu);
Menu mainMenu = menu;
return super.onCreateOptionsMenu(menu);
}
을하고 난 하드웨어 메뉴 버튼에 청취자 가지고 : 나는 방법 또는 전화를 다른 아무것도 찾을 수 없습니다
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode) {
case KeyEvent.KEYCODE_MENU:
// TODO: expand submenu from actionbar
return true;
}
}
return super.onKeyDown(keyCode, event);
}
합니다. 나는이 내가 귀하의 경우
mainMenu.performIdentifierAction(id_of_menu_item, 0);
그래서이 문제를 해결 내가이
private Menu mainMenu; // local variable for menu
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater i = getSupportMenuInflater();
i.inflate(R.menu.main_menu, menu);
SubMenu subMenu = (SubMenu) menu.findItem(R.id.actionbar_submenu);
mainMenu = menu; // store the menu in an local variable
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if(event.getAction() == KeyEvent.ACTION_DOWN){
switch(keyCode) {
case KeyEvent.KEYCODE_MENU:
SubMenu subMenu = (SubMenu) mainMenu.findItem(R.id.actionbar_submenu);
mainMenu.performIdentifierAction(subMenu.getItem().getItemId(), 0);
return true;
}
}
return super.onKeyDown(keyCode, event);
}
에서 같은 것 상상 얼마나 당신이, 환호, 폴
ACTION_UP이 아니라 ACTION_UP이어야합니다. – kolobok