<?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=Xestion_de_eventos_III._onLongClick</id>
	<title>Xestion de eventos III. onLongClick - 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=Xestion_de_eventos_III._onLongClick"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Xestion_de_eventos_III._onLongClick&amp;action=history"/>
	<updated>2026-10-21T11:30:43Z</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=Xestion_de_eventos_III._onLongClick&amp;diff=39241&amp;oldid=prev</id>
		<title>Carrion: Página creada con «==Introdución== *En Android hai moitas formas de interceptar eventos do usuario. *A clase View proporciona varias formas de xestionar eventos. *Por exemplo cando un usuari...»</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Xestion_de_eventos_III._onLongClick&amp;diff=39241&amp;oldid=prev"/>
		<updated>2013-11-14T07:14:13Z</updated>

		<summary type="html">&lt;p&gt;Página creada con «==Introdución== *En Android hai moitas formas de interceptar eventos do usuario. *A clase View proporciona varias formas de xestionar eventos. *Por exemplo cando un usuari...»&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;
*En Android hai moitas formas de interceptar eventos do usuario.&lt;br /&gt;
*A clase View proporciona varias formas de xestionar eventos.&lt;br /&gt;
*Por exemplo cando un usuario toca un botón e chamado o método callback onTouchEvent() dese obxecto.&lt;br /&gt;
*Pero para interceptar ese evento debemos estender a clase e implementar o método.&lt;br /&gt;
*Pero non sería práctico para poder manexar o evento crear unha (sub)clase para cada obxecto Vista.&lt;br /&gt;
*Por iso a Clase Vista conten unha colección de interfaces anidadas.&lt;br /&gt;
*Estas interfaces chámanse &amp;#039;&amp;#039;&amp;#039;Event Listeners (Escoitadores de eventos)&amp;#039;&amp;#039;&amp;#039; e están listas para capturar a iteración do usuario coa UI.&lt;br /&gt;
&lt;br /&gt;
*A continuación imos ver algunhas formas de capturar eventos:&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;
**http://developer.android.com/guide/topics/ui/ui-events.html&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
==Caso práctico==&lt;br /&gt;
*Comezamos creando o proxecto: &amp;#039;&amp;#039;&amp;#039;U3_02_Eventos&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Comezaremos capturado o evento &amp;#039;&amp;#039;&amp;#039;Click&amp;#039;&amp;#039;&amp;#039; e logo ao final veremos outros eventos.&lt;br /&gt;
&lt;br /&gt;
*A aplicación coa que se traballará é a seguinte:&lt;br /&gt;
[[Image:Android_2013_U3_02_Eventos_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML do Layout===&lt;br /&gt;
*A liña 11 marca unha das formas máis sinxelas de capturar o evento Click sobre un compoñente.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;11&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;Button&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:text=&amp;quot;Botón1: onClick Layout&amp;quot;&lt;br /&gt;
        android:onClick=&amp;quot;onBotonClick&amp;quot;&lt;br /&gt;
         /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Button &lt;br /&gt;
        android:id=&amp;quot;@+id/boton2&amp;quot;&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:text=&amp;quot;Botón2: Listener&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
	&amp;lt;Button &lt;br /&gt;
        android:id=&amp;quot;@+id/boton3&amp;quot;&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:text=&amp;quot;Botón3: Clase&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
	&lt;br /&gt;
    &amp;lt;Button &lt;br /&gt;
        android:id=&amp;quot;@+id/boton4&amp;quot;&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:text=&amp;quot;Botón4: Tamén de clase&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Button &lt;br /&gt;
        android:id=&amp;quot;@+id/boton5&amp;quot;&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:text=&amp;quot;Botón5: Obxecto&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
    &lt;br /&gt;
    &amp;lt;Button &lt;br /&gt;
        android:id=&amp;quot;@+id/boton6&amp;quot;&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:text=&amp;quot;Botón6: Outro Obxecto&amp;quot;&lt;br /&gt;
        /&amp;gt;&lt;br /&gt;
&amp;lt;/LinearLayout&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===O Código Java===&lt;br /&gt;
*A continuación preséntase o código Java, pero este vai ser debullado nos seguintes apartados.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;0&amp;quot; &amp;gt;&lt;br /&gt;
package com.example.u3_02_eventos;&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.Toast;&lt;br /&gt;
&lt;br /&gt;
public class U3_02_Eventos extends Activity {&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_u3_02__eventos);&lt;br /&gt;
&lt;br /&gt;
		Button boton2 = (Button) findViewById(R.id.boton2);&lt;br /&gt;
		boton2.setOnClickListener(new OnClickListener() {&lt;br /&gt;
&lt;br /&gt;
			@Override&lt;br /&gt;
			public void onClick(View v) {&lt;br /&gt;
				Toast.makeText(getApplicationContext(), &amp;quot;Premeches o Botón2&amp;quot;, Toast.LENGTH_SHORT).show();&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		Button boton3 = (Button) findViewById(R.id.boton3);&lt;br /&gt;
		boton3.setOnClickListener(new XestionEventos());&lt;br /&gt;
&lt;br /&gt;
		Button boton4 = (Button) findViewById(R.id.boton4);&lt;br /&gt;
		boton4.setOnClickListener(new XestionEventos());&lt;br /&gt;
&lt;br /&gt;
		Button boton5 = (Button) findViewById(R.id.boton5);&lt;br /&gt;
		boton5.setOnClickListener(_OnClickListener);&lt;br /&gt;
&lt;br /&gt;
		Button boton6 = (Button) findViewById(R.id.boton6);&lt;br /&gt;
		boton6.setOnClickListener(_OnClickListener);&lt;br /&gt;
&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	private OnClickListener _OnClickListener = new OnClickListener() {&lt;br /&gt;
&lt;br /&gt;
		@Override&lt;br /&gt;
		public void onClick(View v) {&lt;br /&gt;
			Button btn = (Button) v;&lt;br /&gt;
			Toast.makeText(v.getContext(), &amp;quot;Premeches&amp;quot; + btn.getText(), Toast.LENGTH_SHORT).show();&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&lt;br /&gt;
	public void onBotonClick(View v) {&lt;br /&gt;
		Toast.makeText(this, &amp;quot;Premeches o Botón1&amp;quot;, Toast.LENGTH_SHORT).show();&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.u3_02__eventos, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Propiedade android:onClick===&lt;br /&gt;
*Como xa se view é unha propiedade XML que teñen varios compoñentes (vistas).&lt;br /&gt;
*Hai que definir un método:&lt;br /&gt;
**Que sexa public&lt;br /&gt;
**Que non devolva nada: void&lt;br /&gt;
**Que teña un parámetro da clase View, que será quen provoque o evento.&lt;br /&gt;
*No exemplo anterior son as liñas 50-52:&lt;br /&gt;
 &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
	public void onBotonClick(View v) {&lt;br /&gt;
		Toast.makeText(this, &amp;quot;Premeches o Botón1&amp;quot;, Toast.LENGTH_SHORT).show();&lt;br /&gt;
	}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Listener===&lt;br /&gt;
*Un Event Listener es una interface da clase Vista (View) que contén un único método de tipo callback que hai que implmentar&lt;br /&gt;
*Android invoca estes métodos cando a Vista detecta que o usuario está provocando un tipo concreto de interacción con este elemento da interface de usuario.&lt;br /&gt;
&lt;br /&gt;
Existen os seguintes métodos callback:&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;onClick()&amp;#039;&amp;#039;&amp;#039;: de &amp;#039;&amp;#039;&amp;#039;View.OnClickListener&amp;#039;&amp;#039;&amp;#039;. Este método invócase cando o usuario toca un elemento cun dedo (modo contacto), fai click coa bola de navegación (TrackBall) do dispositivo ou preme a tecla &amp;quot;Enter&amp;quot; estando nun compoeñente.&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;onLongClick()&amp;#039;&amp;#039;&amp;#039;: de &amp;#039;&amp;#039;&amp;#039;View.OnLongClickListener&amp;#039;&amp;#039;&amp;#039;. Este método chámase cando o usuario toca e mantén o dedo sobre un elemento (modo de contacto), fai click sen soltar coa bola de navegación (TrackBall) ou preme a tecla &amp;quot;Enter&amp;quot; perante un segundo estando nun elemento.&lt;br /&gt;
**&amp;#039;&amp;#039;&amp;#039;onFocusChange()&amp;#039;&amp;#039;&amp;#039;: de &amp;#039;&amp;#039;&amp;#039;View.OnFocusChangeListener&amp;#039;&amp;#039;&amp;#039;. Invócase cando o usuario move o cursor cara unha Vista ou se alonxa desta utilizando a bola de navegación ou usando as teclas de navegación.&lt;br /&gt;
&amp;#039;&amp;#039;&amp;#039;onKey()&amp;#039;&amp;#039;&amp;#039;: de &amp;#039;&amp;#039;&amp;#039;View.OnKeyListener&amp;#039;&amp;#039;&amp;#039;. Chámase cando o usuario se centra nun elemento e presiona ou libera una tecla do dispositivo.&lt;br /&gt;
**...&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;onLongClick()&amp;#039;&amp;#039;&amp;#039; verase nun exemplo posterior.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Estes métodos son os únicos que se van implementar nas súas respectivas interfaces.&lt;br /&gt;
*Estas interfaces teñen o formato: &amp;#039;&amp;#039;&amp;#039;on...Listener()&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Unha vez que temos implementada a interface témoslla que pasar como parámetro á vista (view) correspondente a través de &amp;#039;&amp;#039;&amp;#039;vista.set...Listener()&amp;#039;&amp;#039;&amp;#039;.&lt;br /&gt;
&lt;br /&gt;
====A través dunha clase anónima====&lt;br /&gt;
*Exemplo: &amp;#039;&amp;#039;&amp;#039;Liñas 18-25&amp;#039;&amp;#039;&amp;#039; do código&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;0&amp;quot; &amp;gt;&lt;br /&gt;
                Button boton2 = (Button) findViewById(R.id.boton2);&lt;br /&gt;
		boton2.setOnClickListener(new OnClickListener() {&lt;br /&gt;
&lt;br /&gt;
			@Override&lt;br /&gt;
			public void onClick(View v) {&lt;br /&gt;
				Toast.makeText(getApplicationContext(), &amp;quot;Premeches o Botón2&amp;quot;, Toast.LENGTH_SHORT).show();&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Implementar a interface a través dunha clase====&lt;br /&gt;
*Creamos unha nova clase que implemente onClickListener&lt;br /&gt;
[[Image:Android_2013_U3_02_Eventos_02.jpg]]&lt;br /&gt;
&lt;br /&gt;
*Código Java da clase: &amp;#039;&amp;#039;&amp;#039;XestionEventos&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
package com.example.u3_02_eventos;&lt;br /&gt;
&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.Toast;&lt;br /&gt;
&lt;br /&gt;
public class XestionEventos implements 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;
		&lt;br /&gt;
		Button btn = (Button) v;&lt;br /&gt;
		Toast.makeText(v.getContext(), &amp;quot;Premeches &amp;quot;+btn.getText(), Toast.LENGTH_SHORT).show();&lt;br /&gt;
	}&lt;br /&gt;
}&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Observar nas Liñas 28 e 31 (do código principal) como se crea unha nova clase XestionEventos para cada botón.&lt;br /&gt;
*Esa clase é a que vai implementar o método onClick(), como se ve enriba.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
		Button boton3 = (Button) findViewById(R.id.boton3);&lt;br /&gt;
		boton3.setOnClickListener(new XestionEventos());&lt;br /&gt;
&lt;br /&gt;
		Button boton4 = (Button) findViewById(R.id.boton4);&lt;br /&gt;
		boton4.setOnClickListener(new XestionEventos());&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
*Pero esta forma é un &amp;#039;&amp;#039;engorro&amp;#039;&amp;#039;, pois hai que estar creando clases.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====Crear un obxecto que implemente a interface====&lt;br /&gt;
*Para rematar imos crear un obxecto que implemente a interface e que poida ser pasado como parámetro as vistas que desexemos cada vez que se fai click nelas.&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;_OnClickLister&amp;#039;&amp;#039;&amp;#039; é un obxecto de tipo OnClickListener.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
private OnClickListener _OnClickListener = new OnClickListener() {&lt;br /&gt;
&lt;br /&gt;
		@Override&lt;br /&gt;
		public void onClick(View v) {&lt;br /&gt;
			Button btn = (Button) v;&lt;br /&gt;
			Toast.makeText(v.getContext(), &amp;quot;Premeches&amp;quot; + btn.getText(), Toast.LENGTH_SHORT).show();&lt;br /&gt;
		}&lt;br /&gt;
	};&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Pasamos ese obxecto ás vistas que desexemos cando se faga Click nelas.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;1&amp;quot; &amp;gt;&lt;br /&gt;
&lt;br /&gt;
		Button boton5 = (Button) findViewById(R.id.boton5);&lt;br /&gt;
		boton5.setOnClickListener(_OnClickListener);&lt;br /&gt;
&lt;br /&gt;
		Button boton6 = (Button) findViewById(R.id.boton6);&lt;br /&gt;
		boton6.setOnClickListener(_OnClickListener);&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==onLongClick()==&lt;br /&gt;
*Cando sobre unha vista se preme por duración de 1 segundo o máis lánzase o evento &amp;#039;&amp;#039;&amp;#039;LongClick&amp;#039;&amp;#039;&amp;#039; que é capturado polo método &amp;#039;&amp;#039;&amp;#039;onLongClick()&amp;#039;&amp;#039;&amp;#039; asociado ao correspondente interface.&lt;br /&gt;
&lt;br /&gt;
*O método onLongClick() devolve un booleano para poder comprobar se o evento se consumou ou non. Se chegamos a premer por un segundo (ou máis) ou non.&lt;br /&gt;
**Devolve &amp;#039;&amp;#039;&amp;#039;true&amp;#039;&amp;#039;&amp;#039; se puidemos capturar o evento e xa non fai nada máis.&lt;br /&gt;
**Devolve &amp;#039;&amp;#039;&amp;#039;false&amp;#039;&amp;#039;&amp;#039; se non se puido capturar o evento e continua chamando a outros escoitadores tipo on-Click.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Caso Práctico===&lt;br /&gt;
*Comezamos creando o proxecto &amp;#039;&amp;#039;&amp;#039;U3_03_OnLongClick&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
&lt;br /&gt;
*Esta actividade ten 2 vistas:&lt;br /&gt;
**Un botón que se pode facer Click (usando a propiade do XML) e LongClick (capturado a través dun Listener)&lt;br /&gt;
**Unha etiqueta de texto (en 2 liñas) na que se pode facer Click (hai que habilitalo) e LongClick. Nos dos casos os eventos captúranse con cadanseu Listener.&lt;br /&gt;
[[Image:Android_2013_U3_03_OnLongClick_01.jpg]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
====XML do Layout====&lt;br /&gt;
&lt;br /&gt;
*Observar a &amp;#039;&amp;#039;&amp;#039;Liña 20&amp;#039;&amp;#039;&amp;#039; onde se habilita o TextView para sexa &amp;#039;&amp;#039;clickable&amp;#039;&amp;#039;.&lt;br /&gt;
*Agora poderíase engadir ao compoñente a propiedade: android:onClick=&amp;quot;onBotonClick&amp;quot; &lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;20&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;Button&lt;br /&gt;
        android:id=&amp;quot;@+id/boton&amp;quot;&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:onClick=&amp;quot;onBotonClick&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;Botón:\n&lt;br /&gt;
                      onClick Layout\n&lt;br /&gt;
                      onLongClick Listener&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/text_view&amp;quot;&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:clickable=&amp;quot;true&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;Fai click e&lt;br /&gt;
                      \nPreme aquí por máis de 1 seg&amp;quot;&lt;br /&gt;
        android:textSize=&amp;quot;20sp&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;
====Código Java====&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line enclose=&amp;quot;div&amp;quot; highlight=&amp;quot;21-28,33-40,42-49&amp;quot; &amp;gt;&lt;br /&gt;
package com.example.u3_03_onlongclick;&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.view.View.OnLongClickListener;&lt;br /&gt;
import android.widget.Button;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
import android.widget.Toast;&lt;br /&gt;
&lt;br /&gt;
public class U3_03_OnLongClick extends Activity {&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_u3_03__on_long_click);&lt;br /&gt;
&lt;br /&gt;
		Button boton = (Button) findViewById(R.id.boton);&lt;br /&gt;
		boton.setOnLongClickListener(new OnLongClickListener() {&lt;br /&gt;
			@Override&lt;br /&gt;
			public boolean onLongClick(View v) {&lt;br /&gt;
				// TODO Auto-generated method stub&lt;br /&gt;
				Toast.makeText(v.getContext(), &amp;quot;Premeches 1 seg no botón&amp;quot;, Toast.LENGTH_SHORT).show();&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		&lt;br /&gt;
		&lt;br /&gt;
		TextView tv = (TextView) findViewById(R.id.text_view);&lt;br /&gt;
		tv.setOnLongClickListener(new OnLongClickListener() {&lt;br /&gt;
			@Override&lt;br /&gt;
			public boolean onLongClick(View v) {&lt;br /&gt;
				// TODO Auto-generated method stub&lt;br /&gt;
				Toast.makeText(v.getContext(), &amp;quot;Premeches 1 seg na etiqueta de texto&amp;quot;, Toast.LENGTH_SHORT).show();&lt;br /&gt;
				return true;&lt;br /&gt;
			}&lt;br /&gt;
		});&lt;br /&gt;
&lt;br /&gt;
		tv.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;
				Toast.makeText(v.getContext(), &amp;quot;Fixeches click na etiqueta de texto&amp;quot;, Toast.LENGTH_SHORT).show();&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;
		Toast.makeText(this, &amp;quot;Fixeches Click no botón&amp;quot;, Toast.LENGTH_SHORT).show();&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.u3_03__on_long_click, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&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 21-28&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**Cando se faga un LongClick en &amp;#039;&amp;#039;boton&amp;#039;&amp;#039; este executará o método onLonClick() que devolverá true se se chegou a consumar o evento.&lt;br /&gt;
**Probar a cambiar a liña 26 a &amp;#039;&amp;#039;&amp;#039;return false&amp;#039;&amp;#039;&amp;#039; e executar a aplicación. Que pasa?&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 33-40&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**Acontece o mesmo que no caso anterior so que para a etiqueta de texto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 42-49&amp;#039;&amp;#039;&amp;#039;:&lt;br /&gt;
**Se na etiqueta sucede o evento Click executase chámase ao Listener correspondente da etiqueta.&lt;br /&gt;
&lt;br /&gt;
&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]] -- (2013).&lt;/div&gt;</summary>
		<author><name>Carrion</name></author>
	</entry>
</feed>