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
.