Respostas:
Dos ouvintes do evento :
onLongClick () - retorna um booleano para indicar se você consumiu o evento e não deve ser levado adiante. Ou seja, retorne true para indicar que você manipulou o evento e ele deve parar aqui; retorne false se você não o tiver manipulado e / ou o evento continuar com outros ouvintes ao clicar.
Você está voltando truedo seu onLongClick()evento e continua recebendo o clique normal?
Editado para adicionar : para um ListView, você pode estar usando OnItemLongClickListener. O onItemLongClick()lá usa um valor de retorno booleano semelhante para indicar se consumiu o evento.
Reafirmando a resposta em termos mais simples:
Dado:
@Override
public boolean onLongClick(View view) {
return true; // or false
}
return truesignifica que o evento é consumido. É tratado. Nenhum outro evento de clique será notificado.return falsesignifica que o evento não é consumido. Quaisquer outros eventos de clique continuarão recebendo notificações.Portanto, se você não quiser onClicktambém ser acionado após um onLongClick, deverá fazê- lo a return truepartir do onLongClickevento.
Verifique se você está substituindo o OnClickListenerseu onClickmétodo. Verifique também se você está substituindo o OnLongClickListenerseu onLongClickmétodo. E certifique-se de que seu onLongClickmétodo retorne true, pois isso consumirá o onClick.
Você pode implementar a setOnLongClickListenercriação de uma instância de new View.OnClickListener()ou new View.OnLongClickListener(), se você criar um clique longo e implementar um OnclickListener normal, obterá esses erros de clique único ativando o método. Você deve usar new View.OnLongClickListener()para capturar apenas cliques longos
myListView.setOnItemLongClickListener(this);opção, você precisará Substituir a funçãopublic boolean onItemLongClick(...). Aqui você precisa simplesmente oreturn trueque indica que o LongClick foi ativado e cancelará o gatilho com um clique regular. Se você retornar falso, também acionará o clique regular.