<?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=Spinner</id>
	<title>Spinner - 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=Spinner"/>
	<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Spinner&amp;action=history"/>
	<updated>2026-10-21T14:58:05Z</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=Spinner&amp;diff=57130&amp;oldid=prev</id>
		<title>Angelfg en 08:08 28 jul 2015</title>
		<link rel="alternate" type="text/html" href="https://manuais.iessanclemente.net/index.php?title=Spinner&amp;diff=57130&amp;oldid=prev"/>
		<updated>2015-07-28T08:08:55Z</updated>

		<summary type="html">&lt;p&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;
*Un &amp;#039;&amp;#039;&amp;#039;Spinner&amp;#039;&amp;#039;&amp;#039; é unha lista despregable de opcións na que o usuario pode escoller unha delas.&lt;br /&gt;
[[Image:00_spinners_form.png]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Imos comezar usando o Spinner apoiándonos primeiro nun botón de texto.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Unha forma estática de definir os datos que van encher o Spinner é usando un arquivo de recursos de tipo &amp;#039;&amp;#039;&amp;#039;String-array&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: http://developer.android.com/reference/android/widget/Spinner.html&lt;br /&gt;
**Introdución: http://developer.android.com/design/building-blocks/spinners.html&lt;br /&gt;
**Para programadores: http://developer.android.com/guide/topics/ui/controls/spinner.html&lt;br /&gt;
&lt;br /&gt;
==Caso práctico==&lt;br /&gt;
*Crear o proxecto &amp;#039;&amp;#039;&amp;#039;U2_12_Spinner&amp;#039;&amp;#039;&amp;#039;&lt;br /&gt;
*Nunha primeira versión imos crear unha aplicación que permita seleccionar un planeta nun Spiner e logo premendo un botón nos indicará o ítem seleccionado e a súa posición.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Spinner Planetas&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_12_Spinner_11.jpg| Aplicación recén iniciada.&lt;br /&gt;
Image:Android_2013_U2_12_Spinner_12.jpg| Seleccionar Xúpiter (5º elemento da lista)&lt;br /&gt;
Image:Android_2013_U2_12_Spinner_13.jpg| Premer o botón&lt;br /&gt;
Image:Android_2013_U2_12_Spinner_14.jpg| Indícanos que seleccionamos Xúpiter e que está na posición 4. O índice do Spinner comeza en 0.&lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Arquivo de recursos: String-Array===&lt;br /&gt;
&amp;lt;gallery caption=&amp;quot;Crear array&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_12_Spinner_01.jpg| En &amp;#039;&amp;#039;&amp;#039;/res/values&amp;#039;&amp;#039;&amp;#039; crear un novo ficheiro XML de Android. &lt;br /&gt;
Image:Android_2013_U2_12_Spinner_02.jpg| Indicar o nome, nesta caso: array_planetas e rematar.&lt;br /&gt;
Image:Android_2013_U2_12_Spinner_03.jpg| Engadir un elemento ...&lt;br /&gt;
Image:Android_2013_U2_12_Spinner_04.jpg| ... tipo String_Array &lt;br /&gt;
Image:Android_2013_U2_12_Spinner_05.jpg| Poñerlle un nome ao recurso: planetas&lt;br /&gt;
Image:Android_2013_U2_12_Spinner_06.jpg| Engadir un ...&lt;br /&gt;
Image:Android_2013_U2_12_Spinner_07.jpg|  ... ítem&lt;br /&gt;
Image:Android_2013_U2_12_Spinner_08.jpg| Indicar un valor para ese ítem: Mercurio&lt;br /&gt;
Image:Android_2013_U2_12_Spinner_09.jpg| Ficheiro en formaro XML, onde xa se pode copiar/pegar/modificar e crear o resto dos items.  &lt;br /&gt;
Image:Android_2013_U2_12_Spinner_10.jpg|  &lt;br /&gt;
&amp;lt;/gallery&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
*Ficheiro de recursos: array_planetas.xml.&lt;br /&gt;
*Polo nome do string_array é por onde se vai acceder ao array.&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;3&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?xml version=&amp;quot;1.0&amp;quot; encoding=&amp;quot;utf-8&amp;quot;?&amp;gt;&lt;br /&gt;
&amp;lt;resources&amp;gt;&lt;br /&gt;
     &amp;lt;string-array name=&amp;quot;planetas&amp;quot;&amp;gt;&lt;br /&gt;
        &amp;lt;item&amp;gt;Mercurio&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;item&amp;gt;Venus&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;item&amp;gt;Terra&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;item&amp;gt;Marte&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;item&amp;gt;Xúpiter&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;item&amp;gt;Saturno&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;item&amp;gt;Urano&amp;lt;/item&amp;gt;&lt;br /&gt;
        &amp;lt;item&amp;gt;Neptuno&amp;lt;/item&amp;gt;&lt;br /&gt;
    &amp;lt;/string-array&amp;gt;&lt;br /&gt;
&amp;lt;/resources&amp;gt;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===XML do Layout===&lt;br /&gt;
&lt;br /&gt;
*Observar como se crea un Spinner&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;xml&amp;quot; line highlight=&amp;quot;7-11,17&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;Spinner&lt;br /&gt;
        android:id=&amp;quot;@+id/spin_planetas&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:entries=&amp;quot;@array/planetas&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;Button&lt;br /&gt;
        android:id=&amp;quot;@+id/btn_seleccion&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:onClick=&amp;quot;onButtonClick&amp;quot;&lt;br /&gt;
        android:text=&amp;quot;Preme cando selecciones&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
    &amp;lt;TextView&lt;br /&gt;
        android:id=&amp;quot;@+id/lbl_resultado&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;Selecciona un planeta&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;
*&amp;#039;&amp;#039;&amp;#039;Liña 11&amp;#039;&amp;#039;&amp;#039;: é onde se vincula o Spinner co recurso tipo array: planetas.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liña 17&amp;#039;&amp;#039;&amp;#039;: chamamos a un método cando se faga Click.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
===Código Java===&lt;br /&gt;
&amp;lt;syntaxhighlight lang=&amp;quot;java&amp;quot; line highlight=&amp;quot;25-32&amp;quot;&amp;gt;&lt;br /&gt;
package com.example.u2_12_spinner;&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.Spinner;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
&lt;br /&gt;
public class U2_12_Spinner 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_u2_12__spinner);&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_12__spinner, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void onButtonClick(View v) {&lt;br /&gt;
		Spinner spinPlanetas = (Spinner) findViewById(R.id.spin_planetas);&lt;br /&gt;
		TextView lblResultado = (TextView) findViewById(R.id.lbl_resultado);&lt;br /&gt;
&lt;br /&gt;
		lblResultado.setText(&amp;quot;Seleccionaches &amp;quot;&lt;br /&gt;
					+ spinPlanetas.getSelectedItem() &lt;br /&gt;
					+ &amp;quot;\nque está na posición &amp;quot; + spinPlanetas.getSelectedItemId());&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 26,27&amp;#039;&amp;#039;&amp;#039;: Definimos os obxectos nos que recollemos os controis declarados no Layout.&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liñas 31,32&amp;#039;&amp;#039;&amp;#039;: seleccionamos o elemento da lista e a súa posición.&lt;br /&gt;
&lt;br /&gt;
===Capturar o evento cando se selecciona un ítem===&lt;br /&gt;
*Nesta segunda versión vaise deixar que o botón siga realizando a súa función, pero agora cando seleccionemos un ítem que se capture o evento e que na etiqueta indicar cal é o planeta seleccionado e a súa posición.&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;19-42&amp;quot; &amp;gt;&lt;br /&gt;
package com.example.u2_12_spinner;&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.AdapterView;&lt;br /&gt;
import android.widget.AdapterView.OnItemSelectedListener;&lt;br /&gt;
import android.widget.Spinner;&lt;br /&gt;
import android.widget.TextView;&lt;br /&gt;
&lt;br /&gt;
public class U2_12_Spinner 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_u2_12__spinner);&lt;br /&gt;
&lt;br /&gt;
		Spinner spinPlanetas = (Spinner) findViewById(R.id.spin_planetas);&lt;br /&gt;
&lt;br /&gt;
		spinPlanetas.setOnItemSelectedListener(new OnItemSelectedListener() {&lt;br /&gt;
&lt;br /&gt;
			@Override&lt;br /&gt;
			public void onItemSelected(AdapterView&amp;lt;?&amp;gt; parent, View view,&lt;br /&gt;
					int pos, long id) {&lt;br /&gt;
				// TODO Auto-generated method stub&lt;br /&gt;
&lt;br /&gt;
				TextView lblResultado = (TextView) findViewById(R.id.lbl_resultado);&lt;br /&gt;
&lt;br /&gt;
				lblResultado.setText(&amp;quot;Seleccionaches &amp;quot;&lt;br /&gt;
						+ parent.getItemAtPosition(pos)&lt;br /&gt;
						+ &amp;quot;\nque está na posición &amp;quot; + pos);&lt;br /&gt;
&lt;br /&gt;
			}&lt;br /&gt;
&lt;br /&gt;
			@Override&lt;br /&gt;
			public void onNothingSelected(AdapterView&amp;lt;?&amp;gt; arg0) {&lt;br /&gt;
				// TODO Auto-generated method stub&lt;br /&gt;
&lt;br /&gt;
			}&lt;br /&gt;
		});&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_12__spinner, menu);&lt;br /&gt;
		return true;&lt;br /&gt;
	}&lt;br /&gt;
&lt;br /&gt;
	public void onButtonClick(View v) {&lt;br /&gt;
		Spinner spinPlanetas = (Spinner) findViewById(R.id.spin_planetas);&lt;br /&gt;
		TextView lblResultado = (TextView) findViewById(R.id.lbl_resultado);&lt;br /&gt;
&lt;br /&gt;
		lblResultado.setText(&amp;quot;Seleccionaches &amp;quot; + spinPlanetas.getSelectedItem()&lt;br /&gt;
				+ &amp;quot;\nque está na posición &amp;quot; + spinPlanetas.getSelectedItemId());&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ña 21&amp;#039;&amp;#039;&amp;#039;: Listener que se chama cando se selecciona un elemento do Spinner&lt;br /&gt;
*&amp;#039;&amp;#039;&amp;#039;Liña 24&amp;#039;&amp;#039;&amp;#039;: O métod onItemSelected(AdapterView&amp;lt;?&amp;gt; parent, View view, int pos, long id) é chamado cando se selecciona un item distinto do xa seleccionado.&lt;br /&gt;
*Parámetros:&lt;br /&gt;
**parent: O elemento (AdapterView) onde se fixo a selección.&lt;br /&gt;
**view:   A vista que foi selecionada dentro do AdapterView&lt;br /&gt;
**position: A posición da vista dentro do Adaptador.&lt;br /&gt;
**id: Cada ítem pode ter varias filas (neste caso só ten unha) este campo indicaría a fila dentro do ítem&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]] -- (2015).&lt;/div&gt;</summary>
		<author><name>Angelfg</name></author>
	</entry>
</feed>