14

En Actividad clase, hay un método llamado registerForContextMenu(View view).¿Qué es "menú contextual" & método registerForContextMenu()

El documento de Android explica que este método se utiliza para registrar un menú contextual que se mostrará para la vista determinada (varias vistas pueden mostrar el menú contextual).

  • ¿Qué es "menú de contexto" mean? ¿Significa el botón de menú físico o qué?
  • También necesito alguna explicación sobre el método registerForContextMenu(View view), no me es lícito simplemente leer el documento en línea.

Respuesta

10

Básicamente es un menú emergente que se muestra cuando se hace clic largo en ciertos elementos de la IU (generalmente un elemento en un ListView).

Debería echar un vistazo a la sección Menus de la Guía del desarrollador.

7

Esto es de Desarrolladores de Android: Menu -Android Developers

menú Un contexto es un menú flotante que aparece cuando el usuario realiza un largo clic en un elemento. Proporciona acciones que afectan el contenido seleccionado o el marco de contexto.

Imagine que quiere un menú Conext en una vista de lista

//Constants for context menu options 
public static final int MENU_MARK = 1; 
public static final int MENU_REMOVE = 2; 

public void onCreate(Bundle icicle) { 
    super.onCreate(icicle); 
    ... 
    ... 
    // Specify that your listview has a context menu attached 
    registerForContextMenu(getListView()); 
} 

// here you create the context menu 
@Override 
public void onCreateContextMenu(ContextMenu menu, View v, 
    ContextMenuInfo menuInfo) { 
    menu.add(Menu.NONE, MENU_MARK, Menu.NONE, "MARK"); 
    menu.add(Menu.NONE, MENU_REMOVE, Menu.NONE, "Remove"); 
} 

// This is executed when the user selects an option 
@Override 
public boolean onContextItemSelected(MenuItem item) { 
AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo(); 
switch (item.getItemId()) { 
    case MENU_MARK: 
     mark_item(info.id); 
     return true; 
    case MENU_REMOVE: 
     delete_item(info.id); 
     return true; 
    default: 
     return super.onContextItemSelected(item); 
    } 
} 
Cuestiones relacionadas