Android - setOnClickListener vs OnClickListener vs View.OnClickListener
Meu entendimento é que, quando estou criando um objeto de botão que escuta um clique, tenho que:
Crie o objeto de botãoUsarOnClickListner
para fazer ouvir o clique do usuárioUsaronClick
executar ações depois que o usuário clicar no botãoAgora,
OndesetOnClickListener
se encaixam na lógica acima?Qual deles realmente ouve o clique do botão?setOnClickListener
?OnClickListener
?View.OnClickListener
?Quais são as diferenças entre esses três?Aqui está o que eu encontrei no Android Dev:
//The example below shows how to register an on-click listener for a Button.
// Create an anonymous implementation of OnClickListener
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
protected void onCreate(Bundle savedValues) {
...
// Capture our button from layout
Button button = (Button)findViewById(R.id.corky);
// Register the onClick listener with the implementation above
button.setOnClickListener(mCorkyListener);
...
}
Você também pode achar mais conveniente implementarOnClickListener
como parte do seuActivity
. Isso evitará a carga extra de classe e as alocações de objeto. Por exemplo:
public class ExampleActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedValues) {
...
Button button = (Button)findViewById(R.id.corky);
button.setOnClickListener(this);
}
// Implement the OnClickListener callback
public void onClick(View v) {
// do something when the button is clicked
}
}