2012-02-14 25 views
14

Estoy desarrollando Android 2.1 API 7 aplicación. También estoy usando la biblioteca ActionbarSherlock para implementar Action Bar.PopupMenu en Android 2.1 API 7

Ahora, necesito implementar PopupMenu que solo es compatible con API 11+.

¿Cómo puedo implementar PopupMenu en Android 2.1 API 7?

+1

Estoy haciendo algo similar AQUÍ !!! http://stackoverflow.com/questions/16621070/get-context-of-popupmenu-like-contextmenu – toobsco42

+0

Compruebe esta pregunta hecha previamente: [Alternativa adecuada a PopupMenu para pre-Honeycomb] (http://stackoverflow.com/questions/9878916/appropriate-alternative-to-popupmenu-for-pre-honeycomb) Te ayudará a superar el concepto. –

+0

¿Qué hay de usar [HoloEverywhere] (https://github.com/Prototik/HoloEverywhere)? – azizbekian

Respuesta

1

He encontrado un problema así, y la única solución que he encontrado para mí fue utilizar un cuadro de diálogo de lista en Android SDK < 11 y ListPopup en Android 11 y superior.

+0

Esta es la solución que me he conformado al final, incluso después de descubrir soluciones como HoloEverywhere que teóricamente permitirían PopupMenus en versiones anteriores de API. ¡Es mucho menos sobrecarga! – andygeers

0

Su posible importación de archivos API particulares en su código, creo que eclipse lo hará por usted, simplemente escriba el código y si no importó que google para importar API.

1

puede usar HoloEveryWhere, trayendo el tema Holo desde Android 4.1 a 2.1 y superior.

+0

En caso de que ayude a alguien más: Intenté la ruta de HoloEverywhere. Es un enfoque un poco machacante, con costos de configuración bastante grandes y sobrecarga de tamaño en tu binario. Es posible que desee considerar si realmente necesita un PopupMenu en API v7, si puede usar una ListViewActivity o somesuch en su lugar. – andygeers

0

Puede crear un ListDialogFragment que amplíe el SherlockDialogFragment y cree su propia interfaz Listener para que pueda manejar los eventos de selección.

public class ListDialogFragment extends SherlockDialogFragment { 

private String[] mValues; 

public interface ListDialogListener { 
    void onFinishListDialog(int selectedIndex, String tag); 
} 

private ListDialogFragment(String[] values) { 
    mValues = values; 
} 

public static ListDialogFragment newInstance(int index, String[] values) { 
    ListDialogFragment fragment = new ListDialogFragment(values); 

    // Supply index input as an argument. 
    Bundle args = new Bundle(); 
    args.putInt("index", index); 
    fragment.setArguments(args); 

    return fragment; 
} 

public int getSelectedIndex() { 
    return getArguments().getInt("index", 0); 
} 

} 
4

utiliza la biblioteca Android Support V7;
android.support.v7.widget.PopupMenu

Cuestiones relacionadas