2015-10-09 11 views
8

私はアンドロイドアプリにグリッドビューを持っています。グリッドビュー項目には、とりわけ、コンテキスト依存メニューを表示するボタンが含まれています。そこで、私は、gridviewアイテムのボタンに触れるとポップアップメニューを表示しました。Androidのポップアップメニューに「共有」メニューを作成できません

  1. アイテムの編集
  2. 項目の削除
  3. 共有アイテム

私が正常に編集を実施し、メニュー項目を削除しています

は、このメニューは3つの項目が含まれています。問題は「アイテムの共有」メニュー項目にあります。これはShareActionProviderです。私は以前にこれらのメニュー選択肢をActionMode(上のメニュー項目)として実装しました。しかし、メニューがポップアップになったので、「アイテムを共有」メニューオプションを実装する方法がわかりません。ここで

は私popup_menu.xmlです:ここでは

 <?xml version="1.0" encoding="utf-8"?>  
     <menu xmlns:android="http://schemas.android.com/apk/res/android" 
     xmlns:app="http://schemas.android.com/apk/res-auto"> 
    <group android:id="@+id/group_edit_mode"> 
     <item 
      android:id="@+id/MenuItemEdit" 
      android:title="@string/item_option_edit" 
      app:showAsAction="withText|ifRoom" /> 

     <item 
      android:id="@+id/MenuItemDelete" 
      android:title="@string/delete" 
      app:showAsAction="withText|ifRoom" /> 

     <item 
      android:id="@+id/MenuItemShare" 
      android:title="@string/share" 
      app:showAsAction="ifRoom" 
      app:actionProviderClass="android.support.v7.widget.ShareActionProvider"/> 
    </group> 
</menu> 

は、ポップアップメニューコードです:

   PopupMenu popupMenu = new PopupMenu(MINMainActivity.getSharedInstance(), optionButton); 
      MenuInflater inflater = popupMenu.getMenuInflater(); 
      inflater.inflate(R.menu.gridview_edit_menu_single_item, popupMenu.getMenu()); 
      popupMenu.setOnMenuItemClickListener(new PopupMenu.OnMenuItemClickListener() 
      { 
       @Override 
       public boolean onMenuItemClick(MenuItem item) 
       { 
        boolean choiceHandled = false; 
        int itemID = item.getItemId(); 
        switch (itemID) 
        { 
         case R.id.MenuItemEdit: 
          MINPageTypeGridFragment.launchAlbumItemDetails(mFragment, albumItem, mPageItem.pageConfigFileName); 
          mFragment.currentMode = MINPageTypeGridFragment.MODE_STANDARD; 
          choiceHandled = true; 
          break; 
         case R.id.MenuItemDelete: 
          MINPageTypeGridFragment.deleteItem(mFragment, mAlbum, albumItem); 
          mFragment.currentMode = MINPageTypeGridFragment.MODE_STANDARD; 
          choiceHandled = true; 
          break; 
         case R.id.MenuItemShare: 
          choiceHandled = true; 
          mFragment.currentMode = MINPageTypeGridFragment.MODE_STANDARD; 
          break; 
        } 
        return choiceHandled; 
       } 
      }); 
      popupMenu.show(); 

答えて

2

これはWAY overthoughtました。私はちょうどそれをボタンのままにして、チューザーを作成しました。

public void onShareClick(MINAlbumItem albumItem) 
{ 
    List<MINAlbumItem> albumItemsArray = new ArrayList<MINAlbumItem>(); 
    albumItemsArray.add(albumItem); 

    // Creates intent and loads data from items array 
    Intent intent = mFragment.Share(albumItemsArray); 
    MINMainActivity.getSharedInstance().startActivity(Intent.createChooser(intent, MINMainActivity.getSharedInstance().getResources().getString(R.string.send_to))); 
} 
関連する問題