2017-01-05 6 views
1

PopupMenuでクリックされたMenuItemの座標を取得する必要があります。私がこれを行うために知っている唯一の方法は、MenuItemからViewを取得することですが、その方法はわかりません。私はこれを試してみましたが、それはnullを返します:PopupMenuのMenuItemからのビューの取得

View view = ((SelectPlanningActivity) context).getWindow().getDecorView().findViewById(R.id.action_edit_planning); 

私のPopupMenuの完全なコード(それは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(); 

誰も私を助けることができるの?

答えて

0

試してみてください。

MenuItem menuitem =popup.getMenu().findItem(R.id.yourmenuitemid);                
menuitem.getActionView().setBackgroundColor(getResources().getColor(R.color.app_menuitem orange)); 
関連する問題