Quando e em qual situação devo utilizar o metodo setOnClickListener do Android

Blz galera…

Pessoal gostaria de tirar uma dúvida, eu ja sei programar em java e agora estou iniciando meus estudos em android, porém eu fiquei com dúvida em saber em qual momento e em qual situação devo utilizar o método setOnClickLister e em qual momento devo apenas utilizar o metodo onClick. Galera desde já agradeço pela atenção, obrigado

Só encontro uma vantagem em cada uma delas que, por sua sua vez, representam uma desvantagem em relação à outra.

setOnClickListener().

Vantagem.
Permite a reutilização de código existente.
Se implementar a interface em uma classe em separado ela pode ser reutilizada em outras situações iguais.

Desvantagem.
A implementação, sendo feita numa classe anônima, torna o código mais difícil de ler e de manter. Claro que é discutível e há quem diga o contrário. No meu entender é código que “aparece do nada”, no meio daquele em que estou interessado a ler/analisar.


onClick no XML

Vantagem.
Código mais fácil de ler. O código está num método declarado para esse propósito.
Pode evitar a necessidade de ter um atributo e usar ofindViewById()

Desvantagem.
O código não pode ser reutilizado.
Só funciona quando a view é usada numa Activity.
Para implementações simples e sem necessidade do código ser reutilizado, use o onClick no XML com o respectivo método no java.
Para implementações mais complexas e/ou reutilização do código, crie uma classe à parte e use o setOnClickListener().

Fonte