예제 #1
0
  /**
   * Call this to inflate and show the pop up menu
   *
   * @param view the view to anchor the popup menu against
   * @param position the item that was clicked in the popup menu (or -1 if not relevant)
   */
  public void showPopupMenu(final View view, final int position) {
    // create the popup menu
    PopupMenu popupMenu = new PopupMenu(mActivity, view);
    final Menu menu = popupMenu.getMenu();

    // hook up the click listener
    popupMenu.setOnMenuItemClickListener(this);

    // figure what type of pop up menu it is
    mType = onPreparePopupMenu(position);
    if (mType != null) {
      // inflate the menu
      createPopupMenu(menu);
      // show it
      popupMenu.show();
    }
  }
  @Override
  public void onCreateOptionsMenu(final Menu menu, final MenuInflater inflater) {
    inflater.inflate(R.menu.shuffle_item, menu);
    menu.findItem(R.id.menu_shuffle_item).setTitle(getShuffleTitleId());

    // use the same popup menu to provide actions for smart playlist
    // as is used in the PlaylistFragment
    mActionMenuHelper =
        new PlaylistPopupMenuHelper(
            getActivity(), getChildFragmentManager(), PopupMenuType.SmartPlaylist) {
          public Playlist getPlaylist(int position) {
            SmartPlaylistType type = getSmartPlaylistType();
            return new Playlist(type.mId, getString(type.mTitleId), 0);
          }
        };
    mActionMenuHelper.onPreparePopupMenu(0);
    mActionMenuHelper.createPopupMenu(menu);

    inflater.inflate(R.menu.clear_list, menu);
    super.onCreateOptionsMenu(menu, inflater);
  }