私は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