Ho un'app per Android che ha una griglia in esso. Gli oggetti di gridview contengono, tra le altre cose, un pulsante per mostrare i menu sensibili al contesto. Quindi, ho implementato un menu popup che appare quando toccano il pulsante nell'elemento di gridview.Impossibile creare il menu "Condividi" nel menu popup su Android
Questo menu contiene 3 articoli:
- Modifica elemento
- Elimina elemento
- articolo in
ho implementato con successo il modificare ed eliminare le voci di menu. Il problema è con la voce di menu "Condividi elemento". È un ShareActionProvider. In precedenza ho implementato queste opzioni di menu come un ActionMode (voci di menu nella parte superiore). Ma ora che il menu è un popup, non sono sicuro di come implementare l'opzione di menu "Condividi elemento".
Ecco il mio 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>
Ecco il codice di menu a comparsa:
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();