private boolean menuItemAction(int screenX,int screenY,int action){
  ListView listView=mAppMenu.getPopup().getListView();
  ArrayList<View> itemViews=new ArrayList<View>();
  for (int i=0; i < listView.getChildCount(); ++i) {
    boolean hasImageButtons=false;
    if (listView.getChildAt(i) instanceof LinearLayout) {
      LinearLayout layout=(LinearLayout)listView.getChildAt(i);
      for (int j=0; j < layout.getChildCount(); ++j) {
        itemViews.add(layout.getChildAt(j));
        if (layout.getChildAt(j) instanceof ImageButton)         hasImageButtons=true;
      }
    }
    if (!hasImageButtons)     itemViews.add(listView.getChildAt(i));
  }
  boolean didPerformClick=false;
  for (int i=0; i < itemViews.size(); ++i) {
    View itemView=itemViews.get(i);
    boolean shouldPerform=itemView.isEnabled() && itemView.isShown() && getScreenVisibleRect(itemView).contains(screenX,screenY);
switch (action) {
case ITEM_ACTION_HIGHLIGHT:
      itemView.setPressed(shouldPerform);
    break;
case ITEM_ACTION_PERFORM:
  if (shouldPerform) {
    itemView.performClick();
    didPerformClick=true;
  }
break;
case ITEM_ACTION_CLEAR_HIGHLIGHT_ALL:
itemView.setPressed(false);
break;
default :
assert false;
break;
}
}
return didPerformClick;
}

private boolean menuItemAction ( int screenX , int screenY , int action ) { ListView listView = mAppMenu . getPopup ( ) . getListView ( ) ; ArrayList < View > itemViews = new ArrayList < View > ( ) ; for ( int i = 0 ; i < listView . getChildCount ( ) ; ++ i ) { boolean hasImageButtons = false ; if ( listView . getChildAt ( i ) instanceof LinearLayout ) { LinearLayout layout = ( LinearLayout ) listView . getChildAt ( i ) ; for ( int j = 0 ; j < layout . getChildCount ( ) ; ++ j ) { itemViews . add ( layout . getChildAt ( j ) ) ; if ( layout . getChildAt ( j ) instanceof ImageButton ) hasImageButtons = true ; } } if ( ! hasImageButtons ) itemViews . add ( listView . getChildAt ( i ) ) ; } boolean didPerformClick = false ; for ( int i = 0 ; i < itemViews . size ( ) ; ++ i ) { View itemView = itemViews . get ( i ) ; boolean shouldPerform = itemView . isEnabled ( ) && itemView . isShown ( ) && getScreenVisibleRect ( itemView ) . contains ( screenX , screenY ) ; switch ( action ) { case ITEM_ACTION_HIGHLIGHT : itemView . setPressed ( shouldPerform ) ; break ; case ITEM_ACTION_PERFORM : if ( shouldPerform ) { itemView . performClick ( ) ; didPerformClick = true ; } break ; case ITEM_ACTION_CLEAR_HIGHLIGHT_ALL : itemView . setPressed ( false ) ; break ; default : assert false ; break ; } } return didPerformClick ; }
performs the specified action on the menu item specified by the screen coordinate position .
