Duplicar posibles:
Difference between OnClick() event and OnClickListener?clic de botón oyentes en Android
estoy semi-nuevo en el desarrollo de Android y cuando empecé Traté de evitar el uso del diseño xml por cualquier significa necesario para que algunos de mis proyectos anteriores incluyan botones que creen explícitamente un OnClickListener y lo implementen como una clase interna anónima. Tales como -
final Button button = new Button(this);
button.setText("Click to change second line of text");
OnClickListener buttonListener = new View.OnClickListener() {
boolean clicked = false;
int numClicks = 0;
@Override
public void onClick(View v) {
if(numClicks > 5) {
button.setText("STOP IT");
}
numClicks++;
if(clicked == false){
clicked = true;
tv2.setText("Text Changed on Button Click");
}
else
{
clicked = false;
tv2.setText("Click again");
}
}
};
button.setOnClickListener(buttonListener);
Pero a medida que fui más familiarizados con androide, empecé a comprender el valor de los diseños de XML y los botones implementados como esto
<Button
android:id="@+id/button1"
android:layout_height = "wrap_content"
android:layout_width ="wrap_content"
android:text = "lets do this"
android:onClick = "DoIt"
/>
en el XML de diseño, donde se definió DoIt en java
Mi pregunta es, ¿estos 2 métodos son funcionalmente la misma cosa? ¿Hay un OnClickListener definido por el compilador en algún lugar detrás de las escenas? ¿Hay alguna característica que intercambies usando de una manera u otra?
[Aquí hay una discusión útil ] (http://stackoverflow.com/a/7453469/1154026) Creo que te ayudará con tu pregunta. – VicVu
Puede configurar el oyente de clic de tres maneras, 1. configurando oyente de clic individual para cada elemento. 2. Implementación de OnClickListener en la actividad. 3. crear una función separada para manejar el clic del botón y agregar esta función en xml. Puede encontrar estos ejemplos aquí http://wiki.workassis.com/android-three-ways-to-set-click-listener/ –