Android 从弹出菜单中的菜单项获取视图

Android 从弹出菜单中的菜单项获取视图,android,coordinates,menuitem,popupmenu,Android,Coordinates,Menuitem,Popupmenu,我需要得到在弹出菜单中单击的菜单项的坐标。我知道的唯一方法是从菜单项中获取视图,但我不知道如何做到这一点。我尝试了此操作,但返回空值: View view = ((SelectPlanningActivity) context).getWindow().getDecorView().findViewById(R.id.action_edit_planning); 我的弹出菜单的完整代码它位于RecyclerView的适配器中: PopupMenu popup = new PopupMenu(c

我需要得到在弹出菜单中单击的菜单项的坐标。我知道的唯一方法是从菜单项中获取视图,但我不知道如何做到这一点。我尝试了此操作,但返回空值:

View view = ((SelectPlanningActivity) context).getWindow().getDecorView().findViewById(R.id.action_edit_planning);
我的弹出菜单的完整代码它位于RecyclerView的适配器中:

PopupMenu popup = new PopupMenu(context, v, Gravity.RIGHT);
            MenuInflater inflater = popup.getMenuInflater();
            inflater.inflate(R.menu.menu_planning_card, popup.getMenu());

            popup.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() {
                @Override
                public boolean onMenuItemClick(MenuItem item) {
                    View view = ((SelectPlanningActivity) context).getWindow().getDecorView().findViewById(R.id.action_edit_planning);
                    int[] coordinates = Utils.getCenterCoordinates(context, view); // I need to use the View here or use a different way to get its position on the screen
                    Intent i = new Intent(context, EditPlanningActivity.class);
                    i.putExtra("planning", planning);
                    i.putExtra("startX", coordinates[0]);
                    i.putExtra("startY", coordinates[1]);
                    ((SelectPlanningActivity) context).startActivityForResult(i, Utils.ACTIVITY_RESULT_EDIT_PLANNING);
                    return true;
                }
            });
            popup.show();
有人能帮我吗?

试试:

MenuItem menuitem =popup.getMenu().findItem(R.id.yourmenuitemid);                                                              
menuitem.getActionView().setBackgroundColor(getResources().getColor(R.color.app_menuitem orange));