我是Android应用中的新手。开发,现在我遇到了一个菜单按钮的奇怪问题。事情就是这样:
我有两个活动,“ActivityOne”和“ActivityTwo”,其中“ActivityTwo”是“ActivityOne”的子活动。在这两个活动中,我已经定义了菜单按钮选项,如下所示:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
super.onCreateOptionsMenu(menu);
MenuItem insertMenuItem = menu.add(0, INSERT_ID, 0, R.string.menu_insert);
insertMenuItem.setIcon(R.drawable.ic_menu_add);
MenuItem settingMenuItem = menu.add(0, SETTING_ID, 0, R.string.menu_setting);
settingMenuItem.setIcon(R.drawable.ic_menu_settings);
MenuItem aboutMenuItem = menu.add(0, ABOUT_ID, 0, R.string.menu_about);
aboutMenuItem.setIcon(R.drawable.ic_menu_about);
logPrinter.println("creating menu options...");
return true;
}
@Override
public boolean onMenuItemSelected(int featureId, MenuItem item) {
switch(item.getItemId()) {
case INSERT_ID:
doInsert();
return true;
case SETTING_ID:
return true;
case ABOUT_ID:
showAbout();
return true;
}
return super.onMenuItemSelected(featureId, item);
}
在“ActivityOne”中,当我单击物理菜单按钮时,屏幕底部没有弹出菜单选项,当我检查LogCat控制台时,有两条警告消息,这些消息是“ 没有用于ID 0的键盘“和”使用默认keyMap:/system/usr/keychars/qwerty.kcm.bin “。
但是,在“ActivityTwo”中,菜单按钮工作正常,它显示了我定义的那些菜单选项。
为什么菜单按钮在“ActivityOne”中不起作用?警告信息的含义是什么?
答案 0 :(得分:0)
“没有用于id 0的键盘”并不意味着什么。
现在,您是否已在两个活动中定义了onCreateOptionsMenu
?如果没有,那就去做吧。
另外,请使用onOptionsItemSelected
代替onMenuItemSelected
。