<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="es">
	<id>https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Button._ToggleButton._Control_de_eventos_II</id>
	<title>Button. ToggleButton. Control de eventos II - Historial de revisiones</title>
	<link rel="self" type="application/atom+xml" href="https://manuais.iessanclemente.net/index.php?action=history&amp;feed=atom&amp;title=Button._ToggleButton._Control_de_eventos_II"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Button._ToggleButton._Control_de_eventos_II&amp;action=history"/>
	<updated>2026-10-23T23:44:00Z</updated>
	<subtitle>Historial de revisiones de esta página en la wiki</subtitle>
	<generator>MediaWiki 1.46.2</generator>
	<entry>
		<id>https://manuais.iessanclemente.net/index.php?title=Button._ToggleButton._Control_de_eventos_II&amp;diff=60676&amp;oldid=prev</id>
		<title>Carrion: /* Importar unha imaxe como recurso */</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Button._ToggleButton._Control_de_eventos_II&amp;diff=60676&amp;oldid=prev"/>
		<updated>2016-10-03T07:14:33Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Importar unha imaxe como recurso&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Página nueva&lt;/b&gt;&lt;/p&gt;&lt;div&gt;==Introdución==&lt;br /&gt;
*Os &amp;#039;&amp;#039;&amp;#039;botóns (button)&amp;#039;&amp;#039;&amp;#039; permiten ao usuario indicar á aplicación que realice unha acción.&lt;br /&gt;
*Os botóns poden ter Texto, unha imaxe ou as dúas cousas:&lt;br /&gt;
*Ben o texto ou a imaxe comunican claramente ao usuario cal é a función do botón.&lt;br /&gt;
[[Image:00_button-types.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Estes controles son subclases de:&lt;br /&gt;
**Button de TextView&lt;br /&gt;
**ToogleButton de CompoundButton&lt;br /&gt;
**ImageButton de ImageView (que se verá proximamente)&lt;br /&gt;
[[Image:00_Part_of_Android_View_Hierarchy.png|600px]]&lt;br /&gt;
*Imaxe obtida de: http://www.itcsolutions.eu/2011/08/27/android-tutorial-4-procedural-vs-declarative-design-of-user-interfaces&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Observar como se definen os tres tipos de botóns anteriores:&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Botón con texto&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;4&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
    android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
    android:text=&amp;quot;@string/button_text&amp;quot;&lt;br /&gt;
    ... /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Botón con imaxe&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;4&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;ImageButton&lt;br /&gt;
    android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
    android:src=&amp;quot;@drawable/button_icon&amp;quot;&lt;br /&gt;
    ... /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Botón con texto e imaxe&amp;#039;&amp;#039;&amp;#039;. A propiedade &amp;#039;&amp;#039;&amp;#039;android:drawableLeft&amp;#039;&amp;#039;&amp;#039; indica onde se sitúa a imaxe.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;4,5&amp;quot; &amp;gt;&lt;br /&gt;
&amp;lt;Button&lt;br /&gt;
    android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
    android:text=&amp;quot;@string/button_text&amp;quot;&lt;br /&gt;
    android:drawableLeft=&amp;quot;@drawable/button_icon&amp;quot;&lt;br /&gt;
    ... /&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Os botóns teñen unha propiedade &amp;#039;&amp;#039;&amp;#039;android:onClick=&amp;quot;oMeuMetodo&amp;quot;&amp;#039;&amp;#039;&amp;#039; que nos permite chamar ao método indicado cando o pulsamos.&lt;br /&gt;
**Ese método hai que declaralo en Java como &amp;#039;&amp;#039;&amp;#039;puclic void oMeuMetodo (View v) { ... }&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
**Recibe o obxecto View de quen o chamou.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Os botóns (Button) son subclases de &amp;#039;&amp;#039;&amp;#039;TextView&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Referencias&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**O Control botón: http://developer.android.com/reference/android/widget/Button.html&lt;br /&gt;
**Introdución aos botóns: http://developer.android.com/design/building-blocks/buttons.html&lt;br /&gt;
**Para programadores: http://developer.android.com/guide/topics/ui/controls/button.html&lt;br /&gt;
**Para descargar iconas: http://www.iconarchive.com&lt;br /&gt;
**Para descargar imaxes: http://www.openclipart.org&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Botóns de 2 estados: ToggleButton/Switch===&lt;br /&gt;
*Existe outro tipo de botón de 2 estados (ON/OFF).&lt;br /&gt;
*Un máis básico: &amp;#039;&amp;#039;&amp;#039;&amp;lt;ToggleButton&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Image: 00_togglebutton.png]]&lt;br /&gt;
&lt;br /&gt;
* E outro máis avanzado (versión Android 4.0 ou superior): &amp;#039;&amp;#039;&amp;#039;&amp;lt;Switch/&amp;gt;&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Image:00_switch.png]]&lt;br /&gt;
**Permiten cambiar o seu estado desprazando co dun estado a outro. O funcionamento é semellante ao control ToogleButton.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Un obxecto ToogleButton/Switch herda da clase &amp;#039;&amp;#039;&amp;#039;CompoundButton&amp;#039;&amp;#039;&amp;#039;, quen, á súa vez, herda da clase &amp;#039;&amp;#039;&amp;#039;Button&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
*Por tanto funcionan da mesma maneira, pero ademais o este tipo de botóns:&lt;br /&gt;
**ten 2 estados (True/False), que pode podemos comprobar co método &amp;#039;&amp;#039;&amp;#039;isChecked ()&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
**Para cada estado podemos amosar un texto distinto no botón: &amp;#039;&amp;#039;&amp;#039;android:TextOn&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;android:TextOFF&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Referencias&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**O control ToggleButton: http://developer.android.com/reference/android/widget/ToggleButton.html&lt;br /&gt;
**O control switch: http://developer.android.com/reference/android/widget/Switch.html &lt;br /&gt;
**Introdución as botóns de 2 estados: http://developer.android.com/guide/topics/ui/controls/togglebutton.html&lt;br /&gt;
&lt;br /&gt;
==Casos prácticos==&lt;br /&gt;
*Como sempre creamos un novo proxecto:&amp;#039;&amp;#039;&amp;#039;U2_09_Buttons&amp;#039;&amp;#039;&amp;#039; &lt;br /&gt;
&lt;br /&gt;
*Imos crear 3 botóns:&lt;br /&gt;
**1 Botón con texto&lt;br /&gt;
**1 ToogleButton&lt;br /&gt;
**1 botón con imaxe&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Tres botóns&amp;quot; widths=&amp;quot;350&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_10.jpg| Cando entremos na aplicación este será o seu estado.&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_11.jpg| Se prememos o primeiro botón (Texto) amosarase un texto en pantalla.&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_12.jpg| Se prememos o segundo botón (ToogleButton) amosarase outro texto en pantalla e o botón cambiará o seu estado e o texto do mesmo.&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_14.jpg| Se o volvemos pulsar amosa outro texto e volve cambiar o estado.&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_15.jpg| Se prememos o terceiro botón (Imaxe) amosarase de novo un texto diferente.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Importar unha imaxe como recurso===&lt;br /&gt;
*Para poder asignar unha imaxe a un botón esta debe estar no cartafol &amp;#039;&amp;#039;&amp;#039;/res/drawable&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Importar unha imaxe&amp;quot; widths=&amp;quot;350&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Image:ok.png| Descargamos a imaxe superior ou collemos outra icona calquera. O nome da imaxe só pode ter letras e números e nada máis, nin guións. O nome debe estar en minúscula. Ollo que cando se baixa este icono ten o nome comezando por maiúsculas.&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_01.jpg| Dentro de /res/values/ creamos o cartafol &amp;#039;&amp;#039;&amp;#039;drawable&amp;#039;&amp;#039;&amp;#039; e &amp;#039;&amp;#039;&amp;#039;Importamos ...&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_02.jpg| Dende o sistema de ficheiros. &lt;br /&gt;
Image:Android_2013_U2_09_Buttons_03.jpg| Indicamos o cartafol que contén as imaxes e seleccionamos as que desexamos importar para o proxecto.&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_04.jpg| Neste caso cópiase ao proxecto. Lembrar cambiar o nome a minúsculas, se este este contén maiúsculas.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Todo o anterior pode realizarse arrastrando a imaxe dende a súa localización ao IDE, ao cartafol desexado do proxecto dentro do IDE.&lt;br /&gt;
*En Android Studio realñizase copiando a imaxe e pegándoa no cartafol drawable no IDE&lt;br /&gt;
&lt;br /&gt;
===Creación do layout===&lt;br /&gt;
*O layout XML ten 3 botóns e 1 TextView:&lt;br /&gt;
*Observar como hai un layout dentro doutro: un dispón os elementos en vertical e o outro en horizontal.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;7,23,24,32,34&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;LinearLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:orientation=&amp;quot;vertical&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;LinearLayout&lt;br /&gt;
        android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Button&lt;br /&gt;
            android:id=&amp;quot;@+id/btn_boton&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;150sp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
            android:text=&amp;quot;Preme aquí&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/Button&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;ToggleButton&lt;br /&gt;
            android:id=&amp;quot;@+id/tbtn_boton_2estados&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;100dp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
            android:textOff=&amp;quot;Apagado&amp;quot;&lt;br /&gt;
            android:textOn=&amp;quot;Aceso&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/ToggleButton&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;ImageButton&lt;br /&gt;
            android:id=&amp;quot;@+id/ibtn_boton_imaxe&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;55sp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;50sp&amp;quot;&lt;br /&gt;
            android:scaleType=&amp;quot;fitXY&amp;quot;&lt;br /&gt;
            android:src=&amp;quot;@drawable/ok&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/ImageButton&amp;gt;&lt;br /&gt;
    &amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;@string/texto_tv&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Se cargamos este layout e non realizamos ningunha codificación en Java, non vai pasar nada cos botóns: &lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Botóns inoperativos&amp;quot; widths=&amp;quot;350&amp;quot; heights=&amp;quot;300px&amp;quot; perrow=&amp;quot;2&amp;quot;&amp;gt;&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_05.jpg| Prememos no primeiro e non fai nada.&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_06.jpg| Se prememos no segundo só cambia o seu estado, pero tampouco fai nada.&lt;br /&gt;
Image:Android_2013_U2_09_Buttons_07.jpg| O mesmo pasa co terceiro botón. &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Eventos==&lt;br /&gt;
*Nesta ocasión imos ver dun xeito sinxelo como capturar os eventos dos botóns. Máis adiante afondaremos no control de eventos.&lt;br /&gt;
*Un &amp;#039;&amp;#039;&amp;#039;evento&amp;#039;&amp;#039;&amp;#039; é algo que acontece nun control e que nos interesa capturar no sistema para desencadenar (ou non) unha serie de accións.&lt;br /&gt;
*Xa vimos no caso anterior (EditText) que podíamos controlar eventos que acontecen nos controis.&lt;br /&gt;
*Nesta ocasión para os Botóns imos facelo de dúas formas:&lt;br /&gt;
**Control de eventos dende o layout&lt;br /&gt;
**Control de eventos a través dunha clase anónima.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Control de eventos dende o layout===&lt;br /&gt;
*É a forma máis sinxela de desencadear unha acción.&lt;br /&gt;
*Imos facelo de dúas formas:&lt;br /&gt;
**Creando un método para cada Botón.&lt;br /&gt;
**Creando un único método para tódolos botóns. Hai que controlar que botón foi o que se premeu.&lt;br /&gt;
&lt;br /&gt;
====Crear un método para cada botón====&lt;br /&gt;
*Observar a propiedade: &amp;#039;&amp;#039;&amp;#039;android:onClick&amp;#039;&amp;#039;&amp;#039; nos controis dos botóns.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;16,24,34&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;LinearLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:orientation=&amp;quot;vertical&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;LinearLayout&lt;br /&gt;
        android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Button&lt;br /&gt;
            android:id=&amp;quot;@+id/btn_boton&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;150sp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
            android:onClick=&amp;quot;onBotonClick&amp;quot;&lt;br /&gt;
            android:text=&amp;quot;Preme aquí&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/Button&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;ToggleButton&lt;br /&gt;
            android:id=&amp;quot;@+id/tbtn_boton_2estados&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;100dp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
            android:onClick=&amp;quot;onBoton2EstadosClick&amp;quot;&lt;br /&gt;
            android:textOff=&amp;quot;Apagado&amp;quot;&lt;br /&gt;
            android:textOn=&amp;quot;Aceso&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/ToggleButton&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;ImageButton&lt;br /&gt;
            android:id=&amp;quot;@+id/ibtn_boton_imaxe&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;55sp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;50sp&amp;quot;&lt;br /&gt;
            android:contentDescription=&amp;quot;Botón imaxe&amp;quot;&lt;br /&gt;
            android:onClick=&amp;quot;onBotonImaxeClick&amp;quot;&lt;br /&gt;
            android:scaleType=&amp;quot;fitXY&amp;quot;&lt;br /&gt;
            android:src=&amp;quot;@drawable/ok&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/ImageButton&amp;gt;&lt;br /&gt;
    &amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_accion&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;@string/texto_tv&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Para cada botón defínese un método que xestione o evento onClick.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Deixamos para o participante no curso a definición no ficheiro /res/values/strings.xml da constante &amp;quot;@string/texto_tv&amp;quot; do último TextView. &amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Agora só queda definir os métodos en Java.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line highlight=&amp;quot;29-32,34-40,42-45&amp;quot;&amp;gt;&lt;br /&gt;
package com.example.u2_09_buttons;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.view.Menu;&lt;br /&gt;
import android.view.View;&lt;br /&gt;
import android.widget.Button;&lt;br /&gt;
import android.widget.ImageButton;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
import android.widget.ToggleButton;&lt;br /&gt;
&lt;br /&gt;
public class U2_09_Buttons extends Activity {&lt;br /&gt;
	private Button btnBoton;&lt;br /&gt;
	private ToggleButton tbtnBoton2Estados;&lt;br /&gt;
	private ImageButton ibtnBotonImaxe;&lt;br /&gt;
	private TextView tvAccions;&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_u2_09__buttons);&lt;br /&gt;
&lt;br /&gt;
		btnBoton = (Button) findViewById(R.id.btn_boton);&lt;br /&gt;
		tbtnBoton2Estados = (ToggleButton) findViewById(R.id.tbtn_boton_2estados);&lt;br /&gt;
		ibtnBotonImaxe = (ImageButton) findViewById(R.id.ibtn_boton_imaxe);&lt;br /&gt;
		tvAccions = (TextView) findViewById(R.id.tv_accion);&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void onBotonClick(View v) {&lt;br /&gt;
		tvAccions.setText(&amp;quot;Premeches o primeiro botón\n&amp;quot;);&lt;br /&gt;
		tvAccions.append(&amp;quot;O texto do botón é: &amp;quot; + btnBoton.getText());&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void onBoton2EstadosClick(View v) {&lt;br /&gt;
		tvAccions.setText(&amp;quot;Premeches o segundo botón\n&amp;quot;);&lt;br /&gt;
		if (tbtnBoton2Estados.isChecked())&lt;br /&gt;
			tvAccions.append(&amp;quot;O estado é: &amp;quot; + tbtnBoton2Estados.getTextOn());&lt;br /&gt;
		else&lt;br /&gt;
			tvAccions.append(&amp;quot;O estado é: &amp;quot; + tbtnBoton2Estados.getTextOff());&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void onBotonImaxeClick(View v) {&lt;br /&gt;
		tvAccions.setText(&amp;quot;Premeches o terceiro botón\n&amp;quot;);&lt;br /&gt;
		tvAccions.append(&amp;quot;O ancho é: &amp;quot; + ibtnBotonImaxe.getWidth());&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean onCreateOptionsMenu(Menu menu) {&lt;br /&gt;
		// Inflate the menu; this adds items to the action bar if it is present.&lt;br /&gt;
		getMenuInflater().inflate(R.menu.u2_09__buttons, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 13-16&amp;#039;&amp;#039;&amp;#039;: declaración de atributos.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 23-26&amp;#039;&amp;#039;&amp;#039;: asignación de valores aos atributos mediante a clase R.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 29-32&amp;#039;&amp;#039;&amp;#039;: Define o método asociado ao evento android:onClick do primeiro botón. &amp;quot;\n&amp;quot; introduce un salto de liña.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 34-40&amp;#039;&amp;#039;&amp;#039;: Define o método asociado ao evento android:onClick do botón ToggleButton. Comprobamos se está activado o non.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 42-45&amp;#039;&amp;#039;&amp;#039;: Define o método asociado ao evento android:onClick do botón con Imaxe.&lt;br /&gt;
&lt;br /&gt;
*Lanzar a aplicación e comprobar que sucede ao premer os botóns.&lt;br /&gt;
&lt;br /&gt;
====Crear un único método para tódolos botóns====&lt;br /&gt;
&lt;br /&gt;
*Hai que modificar o XML para que as propiedades &amp;#039;&amp;#039;&amp;#039;android:onClick&amp;#039;&amp;#039;&amp;#039; de tódolos botóns chamen ao mesmo método.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;16,24,34&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;LinearLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:orientation=&amp;quot;vertical&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;LinearLayout&lt;br /&gt;
        android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Button&lt;br /&gt;
            android:id=&amp;quot;@+id/btn_boton&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;150sp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
            android:onClick=&amp;quot;onBotonClick&amp;quot;&lt;br /&gt;
            android:text=&amp;quot;Preme aquí&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/Button&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;ToggleButton&lt;br /&gt;
            android:id=&amp;quot;@+id/tbtn_boton_2estados&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;100dp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
            android:onClick=&amp;quot;onBotonClick&amp;quot;&lt;br /&gt;
            android:textOff=&amp;quot;Apagado&amp;quot;&lt;br /&gt;
            android:textOn=&amp;quot;Aceso&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/ToggleButton&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;ImageButton&lt;br /&gt;
            android:id=&amp;quot;@+id/ibtn_boton_imaxe&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;55sp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;50sp&amp;quot;&lt;br /&gt;
            android:contentDescription=&amp;quot;Botón imaxe&amp;quot;&lt;br /&gt;
            android:onClick=&amp;quot;onBotonClick&amp;quot;&lt;br /&gt;
            android:scaleType=&amp;quot;fitXY&amp;quot;&lt;br /&gt;
            android:src=&amp;quot;@drawable/ok&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/ImageButton&amp;gt;&lt;br /&gt;
    &amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_accion&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;@string/texto_tv&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*A definición do método:&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line highlight=&amp;quot;28-51&amp;quot;&amp;gt;&lt;br /&gt;
package com.example.u2_09_buttons;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.view.Menu;&lt;br /&gt;
import android.view.View;&lt;br /&gt;
import android.view.View.OnClickListener;&lt;br /&gt;
import android.widget.Button;&lt;br /&gt;
import android.widget.ImageButton;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
import android.widget.ToggleButton;&lt;br /&gt;
&lt;br /&gt;
public class U2_09_Buttons extends Activity {&lt;br /&gt;
	// private Button btnBoton;&lt;br /&gt;
	// private ToggleButton tbtnBoton2Estados;&lt;br /&gt;
	// private ImageButton ibtnBotonImaxe;&lt;br /&gt;
	private TextView tvAccions;&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_u2_09__buttons);&lt;br /&gt;
&lt;br /&gt;
		tvAccions = (TextView) findViewById(R.id.tv_accion);&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void onBotonClick(View vista) {&lt;br /&gt;
&lt;br /&gt;
		switch (vista.getId()) {&lt;br /&gt;
		case R.id.btn_boton:&lt;br /&gt;
			tvAccions.setText(&amp;quot;Premeches o primeiro botón\n&amp;quot;);&lt;br /&gt;
			tvAccions.append(&amp;quot;O texto do botón é: &amp;quot;&lt;br /&gt;
					+ ((Button) vista).getText());&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		case R.id.tbtn_boton_2estados:&lt;br /&gt;
			tvAccions.setText(&amp;quot;Premeches o segundo botón\n&amp;quot;);&lt;br /&gt;
			if (((ToggleButton) vista).isChecked())&lt;br /&gt;
				tvAccions.append(&amp;quot;O estado é: &amp;quot;&lt;br /&gt;
						+ ((ToggleButton) vista).getTextOn());&lt;br /&gt;
			else&lt;br /&gt;
				tvAccions.append(&amp;quot;O estado é: &amp;quot;&lt;br /&gt;
						+ ((ToggleButton) vista).getTextOff());&lt;br /&gt;
			break;&lt;br /&gt;
&lt;br /&gt;
		case R.id.ibtn_boton_imaxe:&lt;br /&gt;
			tvAccions.setText(&amp;quot;Premeches o terceiro botón\n&amp;quot;);&lt;br /&gt;
		        tvAccions.append(&amp;quot;O ancho é: &amp;quot; + ((ImageButton) vista).getWidth()); &lt;br /&gt;
		}&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	/*public void onBotonClick(View v) {&lt;br /&gt;
		tvAccions.setText(&amp;quot;Premeches o primeiro botón\n&amp;quot;);&lt;br /&gt;
		tvAccions.append(&amp;quot;O texto do botón é: &amp;quot; + btnBoton.getText());&lt;br /&gt;
	}*/&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	   public void onBoton2EstadosClick(View v) {&lt;br /&gt;
	   tvAccions.setText(&amp;quot;Premeches o segundo botón\n&amp;quot;); if&lt;br /&gt;
	   (tbtnBoton2Estados.isChecked()) tvAccions.append(&amp;quot;O estado é: &amp;quot; +&lt;br /&gt;
	   tbtnBoton2Estados.getTextOn()); else tvAccions.append(&amp;quot;O estado é: &amp;quot; +&lt;br /&gt;
	   tbtnBoton2Estados.getTextOff()); }&lt;br /&gt;
	 */&lt;br /&gt;
&lt;br /&gt;
	&lt;br /&gt;
	/*&lt;br /&gt;
	   public void onBotonImaxeClick(View v) {&lt;br /&gt;
	   tvAccions.setText(&amp;quot;Premeches o terceiro botón\n&amp;quot;);&lt;br /&gt;
	   tvAccions.append(&amp;quot;O ancho é: &amp;quot; + ibtnBotonImaxe.getWidth()); }&lt;br /&gt;
	 */&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean onCreateOptionsMenu(Menu menu) {&lt;br /&gt;
		// Inflate the menu; this adds items to the action bar if it is present.&lt;br /&gt;
		getMenuInflater().inflate(R.menu.u2_09__buttons, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 28-51&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**Na chamada ao método recibimos como parámetro unha View (vista) que apunta ao obxecto que o chamou.&lt;br /&gt;
**Collendo o ID da vista, podemos saber que botón foi o que iniciou o evento.&lt;br /&gt;
**Con &amp;#039;&amp;#039;&amp;#039;switch - case&amp;#039;&amp;#039;&amp;#039;, en función do botón que lanzou o evento executamos o código correspondente.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 39, 41 e 43&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**Observar como se fai casting do obxecto recibido. Recíbese un obxecto de tipo View (vista) e precisamos convertelo á ToogleButton para acceder aos seus métodos específicos.&lt;br /&gt;
&lt;br /&gt;
===Control de eventos usando un listener. Clase anónima===&lt;br /&gt;
*Nesta ocasión imos crear un Listener para o primeiro botón. Co cal, hai que eliminar a propiedade &amp;#039;&amp;#039;&amp;#039;android:onClick&amp;#039;&amp;#039;&amp;#039; do XML do primeiro botón&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*O ficheiro XML:&lt;br /&gt;
*Observar que no primeiro botón non se xestiona o evento onClick e que os outros dous botóns seguen mantendo a propiedade &amp;#039;&amp;#039;&amp;#039;android:onClick&amp;#039;&amp;#039;&amp;#039;. &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;12-17,23,33&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;LinearLayout xmlns:android=&amp;quot;http://schemas.android.com/apk/res/android&amp;quot;&lt;br /&gt;
    xmlns:tools=&amp;quot;http://schemas.android.com/tools&amp;quot;&lt;br /&gt;
    android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
    android:orientation=&amp;quot;vertical&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;LinearLayout&lt;br /&gt;
        android:layout_width=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:orientation=&amp;quot;horizontal&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;Button&lt;br /&gt;
            android:id=&amp;quot;@+id/btn_boton&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;150sp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
            android:text=&amp;quot;Preme aquí&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/Button&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;ToggleButton&lt;br /&gt;
            android:id=&amp;quot;@+id/tbtn_boton_2estados&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;100dp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;match_parent&amp;quot;&lt;br /&gt;
            android:onClick=&amp;quot;onBoton2EstadosClick&amp;quot;&lt;br /&gt;
            android:textOff=&amp;quot;Apagado&amp;quot;&lt;br /&gt;
            android:textOn=&amp;quot;Aceso&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/ToggleButton&amp;gt;&lt;br /&gt;
&lt;br /&gt;
        &amp;lt;ImageButton&lt;br /&gt;
            android:id=&amp;quot;@+id/ibtn_boton_imaxe&amp;quot;&lt;br /&gt;
            android:layout_width=&amp;quot;55sp&amp;quot;&lt;br /&gt;
            android:layout_height=&amp;quot;50sp&amp;quot;&lt;br /&gt;
            android:contentDescription=&amp;quot;Botón imaxe&amp;quot;&lt;br /&gt;
            android:onClick=&amp;quot;onBotonImaxeClick&amp;quot;&lt;br /&gt;
            android:scaleType=&amp;quot;fitXY&amp;quot;&lt;br /&gt;
            android:src=&amp;quot;@drawable/ok&amp;quot; &amp;gt;&lt;br /&gt;
        &amp;lt;/ImageButton&amp;gt;&lt;br /&gt;
    &amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/tv_accion&amp;quot;&lt;br /&gt;
        android:layout_width=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:layout_height=&amp;quot;wrap_content&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;@string/texto_tv&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Imos partir do código da primeira versión da ampliación.&lt;br /&gt;
*Comentaremos aquel código que afectaba ao primeiro botón e usaremos un Listener asociado ao primeiro botón.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line highlight=&amp;quot;29-38&amp;quot;&amp;gt;&lt;br /&gt;
package com.example.u2_09_buttons;&lt;br /&gt;
&lt;br /&gt;
import android.app.Activity;&lt;br /&gt;
import android.os.Bundle;&lt;br /&gt;
import android.view.Menu;&lt;br /&gt;
import android.view.View;&lt;br /&gt;
import android.view.View.OnClickListener;&lt;br /&gt;
import android.widget.Button;&lt;br /&gt;
import android.widget.ImageButton;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
import android.widget.ToggleButton;&lt;br /&gt;
&lt;br /&gt;
public class U2_09_Buttons extends Activity {&lt;br /&gt;
	private Button btnBoton;&lt;br /&gt;
	private ToggleButton tbtnBoton2Estados;&lt;br /&gt;
	private ImageButton ibtnBotonImaxe;&lt;br /&gt;
	private TextView tvAccions;&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	protected void onCreate(Bundle savedInstanceState) {&lt;br /&gt;
		super.onCreate(savedInstanceState);&lt;br /&gt;
		setContentView(R.layout.activity_u2_09__buttons);&lt;br /&gt;
&lt;br /&gt;
		btnBoton = (Button) findViewById(R.id.btn_boton);&lt;br /&gt;
		tbtnBoton2Estados = (ToggleButton) findViewById(R.id.tbtn_boton_2estados);&lt;br /&gt;
		ibtnBotonImaxe = (ImageButton) findViewById(R.id.ibtn_boton_imaxe);&lt;br /&gt;
		tvAccions = (TextView) findViewById(R.id.tv_accion);&lt;br /&gt;
		&lt;br /&gt;
		btnBoton.setOnClickListener(new OnClickListener() {&lt;br /&gt;
&lt;br /&gt;
			@Override&lt;br /&gt;
			public void onClick(View v) {&lt;br /&gt;
				// TODO Auto-generated method stub&lt;br /&gt;
				tvAccions.setText(&amp;quot;Premeches o primeiro botón\n&amp;quot;);&lt;br /&gt;
				tvAccions.append(&amp;quot;O texto do botón é: &amp;quot; + btnBoton.getText());&lt;br /&gt;
			}&lt;br /&gt;
			&lt;br /&gt;
		});&lt;br /&gt;
		&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
/*	public void onBotonClick(View v) {&lt;br /&gt;
		tvAccions.setText(&amp;quot;Premeches o primeiro botón\n&amp;quot;);&lt;br /&gt;
		tvAccions.append(&amp;quot;O texto do botón é: &amp;quot; + btnBoton.getText());&lt;br /&gt;
	}&lt;br /&gt;
*/	&lt;br /&gt;
	&lt;br /&gt;
	public void onBoton2EstadosClick(View v) {&lt;br /&gt;
		tvAccions.setText(&amp;quot;Premeches o segundo botón\n&amp;quot;);&lt;br /&gt;
		if (tbtnBoton2Estados.isChecked())&lt;br /&gt;
			tvAccions.append(&amp;quot;O estado é: &amp;quot; + tbtnBoton2Estados.getTextOn());&lt;br /&gt;
		else&lt;br /&gt;
			tvAccions.append(&amp;quot;O estado é: &amp;quot; + tbtnBoton2Estados.getTextOff());&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void onBotonImaxeClick(View v) {&lt;br /&gt;
		tvAccions.setText(&amp;quot;Premeches o terceiro botón\n&amp;quot;);&lt;br /&gt;
		tvAccions.append(&amp;quot;O ancho é: &amp;quot; + ibtnBotonImaxe.getWidth());&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	@Override&lt;br /&gt;
	public boolean onCreateOptionsMenu(Menu menu) {&lt;br /&gt;
		// Inflate the menu; this adds items to the action bar if it is present.&lt;br /&gt;
		getMenuInflater().inflate(R.menu.u2_09__buttons, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 29-38&amp;#039;&amp;#039;&amp;#039;: chamamos ao método &amp;#039;&amp;#039;&amp;#039;setOnClickListener()&amp;#039;&amp;#039;&amp;#039; do primeiro botón que se activará cando se fai click no botón.&lt;br /&gt;
** Creamos unha clase anónima asociada a interface OnClickListener e sobreescribimos o único método que ten: &amp;#039;&amp;#039;&amp;#039;onClick&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Como xa se dixo no anterior control (EditText), para coñecer o método asociado ao botón escribimos &amp;#039;&amp;#039;&amp;#039;obxecto.setOn&amp;#039;&amp;#039;&amp;#039;, prememos &amp;#039;&amp;#039;&amp;#039;CTRL+Barra espaciadora&amp;#039;&amp;#039;&amp;#039; e xa nos auto completa. &lt;br /&gt;
*O mesmo facemos para a creación da clase anónima.&lt;br /&gt;
&lt;br /&gt;
*Premer &amp;#039;&amp;#039;&amp;#039;CTRL + Barra espaciadora&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
[[Image:Android_2013_U2_09_Buttons_08.jpg|600px]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Clase anónima co seu método.&lt;br /&gt;
[[Image:Android_2013_U2_09_Buttons_09.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Quedan presentados os &amp;#039;&amp;#039;&amp;#039;listeners&amp;#039;&amp;#039;&amp;#039; máis adiante afondaremos sobre eles. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;br&amp;gt; -- [[Usuario:angelfg|Ángel D. Fernández González]] e [[Usuario:Carrion|Carlos Carrión Álvarez]] -- (2015).&lt;/div&gt;</summary>
		<author><name>Carrion</name></author>
	</entry>
</feed>