Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Dúvida no Ex. 8 da Aula 3 - Cadastro de Alunos

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

1 resposta
solução!

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 Toasts na sua tela ao fazer um clique longo: o Toast do clique longo e o do clique simples.

Abraço.