Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/192.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何从操作栏弹出菜单中获取项目id?_Android_Android Actionbar_Menuitem_Android Menu_Popupmenu - Fatal编程技术网

Android 如何从操作栏弹出菜单中获取项目id?

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()=

从操作栏按菜单项后,访问弹出菜单中的项目时遇到问题。换句话说,我不知道在按下操作栏项目后如何从弹出菜单中获取项目id。 注意:公共布尔值onMenuItemClickMenuItem项不起作用

     @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方法来侦听弹出菜单的事件