Tengo una actividad de lista y deseo implementar el menú contextual para cada uno de los elementos de la lista. Sé que la forma más común de hacerlo es mostrar el menú contextual al hacer clic/tocar largo. Quiero saber si hay una manera de mostrar el menú contextual de cada elemento al presionar una tecla (preferiblemente la tecla de menú). Para reformular mi pregunta, ¿cómo puedo activar el menú contextual y no el menú de opciones presionando la tecla de menú (o cualquier otra tecla).Cómo implementar el menú contextual al presionar la tecla en lugar de hacer clic/tocar prolongadamente
Respuesta
Para abrir el menú contextual, llame al openContextMenu()
. Para activarlo mediante una tecla, anule onKeyDown()
o onKeyUp()
.
Dicho esto, I realmente no lo recomiendo.
Los usuarios se quejan de que Android no tiene estándares de interfaz de usuario. En cambio, Android tiene convenciones de interfaz de usuario, que permiten cierta libertad a los desarrolladores (y, lo que es más importante, no son barreras para que su aplicación aparezca en el Android Market).
Sin embargo, el punto de esos usuarios es muy válido: su experiencia se ve afectada cuando las aplicaciones deciden ejecutar una tangente de UI. Decidir que la tecla MENÚ aparezca un menú contextual sería una de esas tangentes. Para empezar, en dispositivos de pantalla táctil, esto no funcionará muy bien, porque no hay ningún elemento seleccionado en su ListView
, por lo que no sería claro para el usuario a qué se refiere el MENÚ.
Sospecho que hay una mejor solución para cualquier problema que piense que está resolviendo de esta manera.
He hecho lo mismo para una de mis aplicaciones porque tiene sentido para mi aplicación. La mejor y más fácil forma de hacerlo es anular onListItemClick() para su listActivity. Esto es mejor que onKeyDown() porque pertenece específicamente al elemento de la lista (vista) en cuestión y solo se aplicará a los elementos de la lista, y no al resto de la pantalla.
onListItemClick(ListView l, View v, int position, long id)
{
v.showContextMenu();
}
entonces todo lo que tiene que hacer anular los métodos de menú de contexto y ya está de oro
- 1. Cómo agregar menú contextual al menú contextual de NSOutlineView (
- 2. Entradas en SDL (al presionar la tecla)
- 3. ¿Cómo hacer para "presionar cualquier tecla" en python?
- 4. ¿Cómo cerrar un formulario al presionar la tecla de escape?
- 5. Seleccionar el elemento ListBox solo al hacer clic o presionar la tecla en Silverlight
- 6. Cómo mostrar un menú contextual al hacer clic con el botón derecho en un elemento de menú
- 7. Extensión de Chrome: agregue la opción al menú contextual al hacer clic en determinado elemento HTML
- 8. cómo llamar menú contextual
- 9. Agregar elemento de menú al menú contextual de Windows solo para el tipo de archivo específico
- 10. ¿Cómo modificar el menú contextual en CKEditor?
- 11. Cómo capturar la tecla borrar presionar C#?
- 12. C# - Detectando si se mantiene presionada la tecla al abrir un menú contextual
- 13. PyQt y menú contextual
- 14. Mostrar el menú contextual desde el código detrás de
- 15. jQuery ocultar el menú desplegable al hacer clic en cualquier lugar menos en el menú
- 16. Cómo adjuntar el menú contextual al navegador TChromium
- 17. Menú contextual de TabControl
- 18. Agregar icono al menú contextual hijo
- 19. agregar elemento de menú al menú contextual predeterminado
- 20. Tortoise SVN: cómo cambiar el menú contextual?
- 21. La integración en el Explorador de Windows menú contextual del
- 22. Eliminar el menú contextual en TinyMCE
- 23. Encuadernación desde el elemento de menú contextual al control principal
- 24. ¿Cómo cerrar la aplicación WPF desde el menú contextual?
- 25. Comportamiento de selección múltiple jqGrid al presionar la tecla especial
- 26. ¿Agregar al menú contextual del navegador?
- 27. jQuery código desencadenado dos veces para bind ('cambio de tecla') al presionar la tecla
- 28. Capturar presionar la tecla presionar en el campo de entrada de texto en AS3
- 29. eliminar la tecla presionar demora en javascript
- 30. Añadir menú contextual personalizado al explorador para el directorio \ fondo
Estoy de acuerdo que es necesario que haya algunas convenciones habituales para los desarrolladores a seguir para hacer que la experiencia androide del consumidor más consistentes de una aplicación a otro. Sin embargo, para esta pregunta específica SÍ, creo que hay situaciones en las que es apropiado y lo he hecho yo mismo. – mtmurdock
@mtmurdock: le invitamos a su opinión. El equipo principal de Android no parece compartirlo: http://developer.android.com/guide/practices/ui_guidelines/menu_design.html – CommonsWare