OnCreateContextMenu no se está llamando
Parece que el onCreateContextMenu insn't ser llamado en absoluto. En mi onCreate para mi ListActivity tengo:
list = getListView(); registerForContextMenu(list);
(Sé que es redundante, y acabo de pasar getListView () con los mismos resultados).
- Android: conectar mysql (XAMPP) a la aplicación android en el emulador
- Personalización del componente listview
- Creación de ViewHolders para ListViews con diferentes diseños de elementos
- No se puede obtener el número de fila que se ha hecho clic en la vista de lista de android
- Problema al agregar pie de página a ListView
Aquí está mi onCreateOntextMenu;
@Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); Log.d("LM", "onCreateContextMenu"); MenuInflater inflater = getMenuInflater(); inflater.inflate(R.menu.context_landmarks, menu); }
El registro nunca se genera. ¿Alguien tiene alguna sugerencia?
- Cómo implementar RecyclerView con filas CardView en un fragmento con TabLayout
- Mensaje de error: el archivo adjunto de origen no contiene el origen del archivo ListView.class
- Android ListView en el fragmento
- El clic no está funcionando en el Listtext de Listitem android
- ¿Cuál es la mejor manera de mantener el adaptador como una clase interna de actividad o fuera?
- ¿Por qué divider no se muestra en el listview @android: id / list?
- Rellenar listview de arraylist de objetos
- ListActivity vs ListView
Mi pensamiento es ListView interceptar el evento y no entrar en el comportamiento contextMenu. Tiene sentido para mí porque el comportamiento de OnItemLongClickListener se superpone a contextMenu. ¿Si no cómo puede reconocer entre contextMenu y OnItemLongClickListener?
Intente localizar registerForContextMenu (lista); Como ur el último método para llamar en el método onCreate. Me refiero a este método shoul ser llamado después de que el adaptador de lista se llama no antes.
Sólo youwidget.setonLongclicklistener
quitar youwidget.setonLongclicklistener
y yourwidget.setLongClickable
A continuación, agregue registerforContextmenu(yourwidget)
en onCreate()
luego agregue el código de acuerdo con el widget utilizado.
Espero que sea útil.
Mi problema estaba muy estrechamente relacionado con la respuesta de lulumeya, que me señaló en la dirección correcta. He hecho menús contextuales muchas veces antes y de alguna manera nunca se topó con esto hasta ahora.
Estaba llamando View.setOnClickListener(listener)
en Adapter.getView(...)
cuando debería ser ListView.setOnItemClickListener(listener)
para evitar conflictos con el menú contextual.
En general, estoy seguro de que OnItemClickListener está más optimizado, sobre todo porque sólo se usa una instancia de escucha en lugar de crear una nueva instancia cada vez que se crea o se recicla una vista.
Tenía ese problema y sólo podía resolverlo asegurando
- Eso porque el resp. Actividad registrada las vistas, la misma actividad debe también anular sobreCreateContextMenu (); Hacer esto en un fragmento no funcionará
- Puesto que utilicé un fragmento adicional que creaba el adaptador (y el registro con él) el fragmento no la actividad debe substituir onContextItemSelected ().
Estoy pensando en abandonar la prensa larga popup en favor de un botón de estilo de Youtube en el margen derecho de las tarjetas apareciendo un menú que no se desvanece todo lo demás a fondo — ¿cuál es el término de búsqueda para que btw?
Tienes que llamar al método registerForContextMenu(View view)
en onCreate(Bundle savedInstanceState)
.