Respuestas:
De los oyentes de eventos :
onLongClick () : devuelve un valor booleano para indicar si ha consumido el evento y no debe continuar. Es decir, devuelva verdadero para indicar que ha manejado el evento y que debería detenerse aquí; devuelva falso si no lo ha manejado y / o el evento debe continuar a cualquier otro oyente al hacer clic.
¿Regresa truede su onLongClick()y sigue recibiendo el evento de clic normal?
Editado para agregar : para un ListView, puede estar usando OnItemLongClickListener. El onItemLongClick()no utiliza un valor de retorno booleano similares para indicar si se consume el evento.
Reestableciendo la respuesta en términos más simples:
Dado:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
return truesignifica que el evento se consume. Se maneja Ningún otro evento de clic será notificado.return falsesignifica que el evento no se consume. Cualquier otro evento de clic continuará recibiendo notificaciones.Entonces, si no desea onClickque se active también después de un onLongClick, entonces debe hacerlo return truedesde el onLongClickevento.
Asegúrate de anular OnClickListenertu onClickmétodo. También asegúrese de anular OnLongClickListenersu onLongClickmétodo. Y asegúrese de que su onLongClickmétodo regrese true, ya que esto consumirá el onClick.
Puede implementar la setOnLongClickListenercreación de una instancia de new View.OnClickListener()o new View.OnLongClickListener(), si crea un clic largo e implementa un OnclickListener normal, obtendrá estos errores de un solo clic activando el método. Debe usar new View.OnLongClickListener()para capturar solo clics largos
myListView.setOnItemLongClickListener(this);opción, deberá anular la funciónpublic boolean onItemLongClick(...). Aquí simplemente necesita loreturn trueque indica que LongClick se activó y cancelará el disparador con el clic normal. Si devuelve falso, también activará el clic normal.