Android onTouch com onClick e onLongClick
Eu tenho uma exibição personalizada que funciona como um botão. Quero alterar o plano de fundo quando o usuário pressioná-lo, reverter o plano de fundo para o original quando o usuário move o dedo para fora ou solta-o e também quero manipular eventos onClick / onLongClick. O problema é que o onTouch exige que eu retorne true paraACTION_DOWN
ou ele não me enviará oACTION_UP
evento. Mas se eu retornar verdadeiro oonClick
ouvinte não vai funciona
Eu pensei que tinha resolvido isso retornando false no onTouch e registrando-se no onClick - de alguma forma funcionou, mas foi meio contra os documentos. Acabei de receber uma mensagem de um usuário me dizendo que ele não pode clicar muito no botão, então estou me perguntando o que há de errado aqui.
Parte do código atual:
public boolean onTouch(View v, MotionEvent evt)
{
switch (evt.getAction())
{
case MotionEvent.ACTION_DOWN:
{
setSelection(true); // it just change the background
break;
}
case MotionEvent.ACTION_CANCEL:
case MotionEvent.ACTION_UP:
case MotionEvent.ACTION_OUTSIDE:
{
setSelection(false); // it just change the background
break;
}
}
return false;
}
public void onClick(View v)
{
// some other code here
}
public boolean onLongClick(View view)
{
// just showing a Toast here
return false;
}
// somewhere else in code
setOnTouchListener(this);
setOnClickListener(this);
setOnLongClickListener(this);
Como faço para que eles funcionem juntos corretamente?
Desde já, obrigad