package org.openintents.shopping.ui.widget; import android.content.Context; import android.view.Menu; import android.view.MenuItem; import android.view.View; /* This class exposes a subset of PopupMenu functionality, and chooses whether * to use the platform PopupMenu (on Honeycomb or above) or a backported version. */ public class QuickSelectMenu { private android.support.v7.widget.PopupMenu mImplPlatform; private OnItemSelectedListener mItemSelectedListener; public QuickSelectMenu(Context context, View anchor) { mImplPlatform = new android.support.v7.widget.PopupMenu(context, anchor); mImplPlatform .setOnMenuItemClickListener(new android.support.v7.widget.PopupMenu.OnMenuItemClickListener() { @Override public boolean onMenuItemClick(MenuItem item) { return onMenuItemClickImpl(item); } }); } // not sure if we want to expose this or just an add() method. public Menu getMenu() { return mImplPlatform.getMenu(); } /** * Interface responsible for receiving menu item click events if the items * themselves do not have individual item click listeners. */ public interface OnItemSelectedListener { /** * This method will be invoked when an item is selected. * * @param item {@link CharSequence} that was selected * @param id */ public void onItemSelected(CharSequence item, int id); } public void setOnItemSelectedListener(OnItemSelectedListener listener) { mItemSelectedListener = listener; } public void show() { mImplPlatform.show(); } // popup.setOnMenuItemClickListener(new // android.widget.PopupMenu.OnMenuItemClickListener() { public boolean onMenuItemClickImpl(MenuItem item) { CharSequence name = item.getTitle(); int id = item.getItemId(); this.mItemSelectedListener.onItemSelected(name, id); return true; } }