Para ejecutar un bloque de código al pulsar un botón el usuario hay dos posibilidades: asignar un método como propiedad del elemento Button en el fichero XML, o bien asignar un objeto OnClickListener como propiedad del botón.

Propiedad onClick en el fichero XML

Los elementos de tipo Button poseen la propiedad onClick a la que se le puede asignar el nombre de un método que se ejecutará cuando el usuario haga clic en el botón. El nombre del método se puede indicar en la ventana de propiedades del diseño del botón, o en el fichero XML del layout.

Por ejemplo, si al método que incluye el código a ejecutar se le ha dado el nombre botonPulsado, en la propiedad On Click de la vista de diseño gráfico se debe indicar ese nombre.

onClick01

Si se prefiere utilizar directamente el código XML, debe quedar similar al siguiente:

<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/textView1"
android:layout_centerHorizontal="true"
android:onClick="botonPulsado"
android:text="Button"
tools:ignore="HardcodedText" />

El método que debe ejecutarse debe declararse en el código fuente de la activity asociada al layout. Debe tener un parámetro de la clase View que será una referencia al elemento (widget) sobre el que se ha hecho clic.

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}

public void botonPulsado(View v) {
//Escribir aquí el código a ejecutar al pulsar el botón
}

}

Asignar un objeto OnClickListener como propiedad del botón

Como se ha comentado anteriormente, otra opción es crear un objeto de la clase OnClickListener y asignarlo al botón en la propiedad de ese mismo nombre. Se haría con un código similar al siguiente:

public class MainActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//Obtener una referencia al botón indicando su ID (button1)
Button botonAPulsar = (Button) findViewById(R.id.button1);
//Asignar un objeto OnClickListener a la propiedad OnClickListener
botonAPulsar.setOnClickListener(new View.OnClickListener() {
//Implementar el método onClick para este objeto OnClickListener
public void onClick(View v) {
//Escribir aquí el código a ejecutar al pulsar el botón
}
});
}

}