studio programacion para móviles libro edición desarrollo desarrollar curso aprende aplicaciones android events listview onlongclicklistener

programacion - Android: ¿Por qué un clic largo también activa un clic normal?



manual de programacion android pdf (3)

Asegúrese de anular OnClickListener para su método onClick . También asegúrese de anular OnLongClickListener para su método onLongClick . Y asegúrese de que su método onLongClick true , ya que consumirá el onClick .

Tengo un ListView con oyentes para un clic largo y un clic normal.

¿Por qué, cuando presiono durante mucho tiempo un elemento de la lista, también se llama al evento de clic normal?

Necesito tener dos funciones separadas para los diferentes clics.


De los oyentes del evento :

onLongClick() - Esto devuelve un valor booleano para indicar si ha consumido el evento y no debe llevarse más allá. Es decir, devuelve verdadero para indicar que has manejado el evento y debe detenerse aquí; devuelve falso si no lo ha manejado y / o el evento debe continuar con cualquier otro oyente en clic.

¿ onLongClick() true desde su onLongClick() y sigue obteniendo el evento de clic normal?

Editado para agregar : para un ListView, puede estar usando OnItemLongClickListener . El onItemLongClick() utiliza un valor de retorno booleano similar para indicar si consumió el evento.


Repetir la respuesta en términos más simples:

Dado:

@Override public boolean onLongClick(View view) { return true; // or false }

  • return true significa que el evento se consume. Se maneja. No se notificará ningún otro evento de clic.
  • return false significa que el evento no se consume. Cualquier otro evento de clic continuará recibiendo notificaciones.

Por lo tanto, si no desea que onClick también se onLongClick después de un onLongClick , entonces debe return true desde el evento onLongClick .