A explicação dada na resposta deste exercício não ficou clara, isso porque dentro do onCreate os primeiro evento (click simples), ocorre sempre antes do do segundo (click longo), sem que seja feito o teste boolean.
Obrigado
A explicação dada na resposta deste exercício não ficou clara, isso porque dentro do onCreate os primeiro evento (click simples), ocorre sempre antes do do segundo (click longo), sem que seja feito o teste boolean.
Obrigado
Oi Cleber,
neste momento, você deve estar com um código parecido com esse:
public class ListaAlunosActivity {
public void onCreate(Bundle bundle){
super.onCreate(bundle);
setContentView(R.layout.activity_lista_alunos);
ListView listaAlunos = findViewById(R.id.lista_alunos);
listaAlunos.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> adapter, View v, int posicao, long id) {
Toast.makeText(ListaAlunos.this, "Click SIMPLES na lista", Toast.LENGTH_LONG).show();
}
});
listaAlunos.setOnItemLongClickListener(new OnItemLongClickListener() {
public boolean onItemLongClick(AdapterView<?> adapter, View v, int posicao, long id) {
Toast.makeText(ListaAlunos.this, "Click LONGO na lista", Toast.LENGTH_LONG).show();
return true;
}
});
}
}
Caso você deixe o public boolean onItemLongClick
retornando true
, você está dizendo que quer que o evento de clique seja consumido por esse método. Então, quando você der um clique longo no item da lista, o evento de click simples não será disparado junto, ou seja, você só verá o Toast
do clique longo na sua tela.
Porém, caso você faça o onItemLongClick
retornar false
, esse método não consumirá o evento de clique e passará para o onItemClick
. Isso fará com que você veja os dois Toast
s na sua tela ao fazer um clique longo: o Toast
do clique longo e o do clique simples.
Abraço.