Android 如何从操作栏弹出菜单中获取项目id?
从操作栏按菜单项后,访问弹出菜单中的项目时遇到问题。换句话说,我不知道在按下操作栏项目后如何从弹出菜单中获取项目id。 注意:公共布尔值onMenuItemClickMenuItem项不起作用Android 如何从操作栏弹出菜单中获取项目id?,android,android-actionbar,menuitem,android-menu,popupmenu,Android,Android Actionbar,Menuitem,Android Menu,Popupmenu,从操作栏按菜单项后,访问弹出菜单中的项目时遇到问题。换句话说,我不知道在按下操作栏项目后如何从弹出菜单中获取项目id。 注意:公共布尔值onMenuItemClickMenuItem项不起作用 @Override public boolean onOptionsItemSelected(MenuItem item) { // Handle presses on the action bar items if(item.getItemId()=
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle presses on the action bar items
if(item.getItemId()== R.id.action_settings) {
openPopup();
}
return super.onOptionsItemSelected(item);
}
public void openPopup() {
//find the settings button first
View ActionItemView = findViewById(R.id.action_settings);
PopupMenu popupMenu = new PopupMenu(this, ActionItemView);
popupMenu.inflate(R.menu.popup);
popupMenu.show();
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId())
{
case R.id.action_search:
openSearch();
case R.id.PopupSettings:
openSettings();
}
}
}
您的应用程序需要首先实现PopupMenu.OnMenuItemClickListener接口,然后实现该接口中定义的方法,即onMenuItemClick方法,如果您决定使用匿名类,您可以直接在onCreate方法中实现,就像这样,您根本不必使用implements关键字
popMenu.setOnMenuItemClickListener(new OnMenuItemClickListener() {
public boolean onMenuItemClick(MenuItem item) {
switch (item.getItemId())
{
case R.id.action_search:
openSearch();
return true; //return true to indicate it was handled, false otherwise
case R.id.PopupSettings:
openSettings();
return true;
default:
return false;
}
});
每次用户选择一个选项时,您都必须使用setOnMenuItemClickListener在该菜单上设置回调方法,否则弹出窗口将不起任何作用。基本上,必须实现setOnMenuClickListener方法来侦听弹出菜单的事件