Android - Spinner

Spinner le permite seleccionar un elemento de un menú desplegable

Por ejemplo. Cuando esté utilizando la aplicación Gmail, obtendrá el menú desplegable como se muestra a continuación, debe seleccionar un elemento de un menú desplegable.

Ejemplo de Spinner

Ejemplo

Este ejemplo demuestra la categoría de computadoras, debe seleccionar una categoría de la categoría.

Para experimentar con este ejemplo, debe ejecutarlo en un dispositivo real después de desarrollar la aplicación de acuerdo con los pasos a continuación.

Pasos Descripción
1 Utilizará Android Studio para crear una aplicación de Android y nombrarla como AndroidSpinnerExample en un paquete com.example.spinner.
2 Modifique el archivo src / AndroidSpinnerExampleActivity.java para crear una vista de lista simple con elementos que se muestran como elementos giratorios
3 Modifique el archivo res / layout / activity_main.xml para agregar el código XML respectivo.
4 No es necesario definir constantes de cadena predeterminadas. Android Studio se encarga de las constantes de cadena predeterminadas en string.xml
5 Ejecute la aplicación y elija un dispositivo Android en ejecución e instale la aplicación en él y verifique los resultados.

A continuación se muestra el contenido del archivo de actividad principal modificado src/com.example.spinner/AndroidSpinnerExampleActivity.java.

package com.example.spinner;

import java.util.ArrayList;
import java.util.List; 
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import android.widget.AdapterView.OnItemSelectedListener;
 
class AndroidSpinnerExampleActivity extends Activity implements OnItemSelectedListener{
   @Override
   public void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.main);
      
      // Spinner element
      Spinner spinner = (Spinner) findViewById(R.id.spinner);
      
      // Spinner click listener
      spinner.setOnItemSelectedListener(this);
      
      // Spinner Drop down elements
      List<String> categories = new ArrayList<String>();
      categories.add("Automobile");
      categories.add("Business Services");
      categories.add("Computers");
      categories.add("Education");
      categories.add("Personal");
      categories.add("Travel");
      
      // Creating adapter for spinner
      ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, categories);
      
      // Drop down layout style - list view with radio button
      dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
      
      // attaching data adapter to spinner
      spinner.setAdapter(dataAdapter);
   }
   
   @Override
   public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
      // On selecting a spinner item
      String item = parent.getItemAtPosition(position).toString();
      
      // Showing selected spinner item
      Toast.makeText(parent.getContext(), "Selected: " + item, Toast.LENGTH_LONG).show();
   }
   public void onNothingSelected(AdapterView<?> arg0) {
      // TODO Auto-generated method stub
   }
}

Modificar el contenido de res/layout/activity_main.xml a lo siguiente

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:orientation="vertical"
   android:padding="10dip"
   android:layout_width="fill_parent"
   android:layout_height="wrap_content">
   
   <TextView
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:layout_marginTop="10dip"
      android:text="Category:"
      android:layout_marginBottom="5dp"/>
      
   <Spinner
      android:id="@+id/spinner"
      android:layout_width="fill_parent"
      android:layout_height="wrap_content"
      android:prompt="@string/spinner_title"/>
      
</LinearLayout>

Modificar el res/values/string.xml a lo siguiente

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <string name="app_name">AndroidSpinnerExample</string>
</resources>

Este es el predeterminado AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
   package="com.example.spinner" >

   <application
      android:allowBackup="true"
      android:icon="@drawable/ic_launcher"
      android:label="@string/app_name"
      android:theme="@style/AppTheme" >
      
      <activity
         android:name="com.example.spinner.AndroidSpinnerExampleActivity"
         android:label="@string/app_name" >
      
         <intent-filter>
            <action android:name="android.intent.action.MAIN" />
            <category android:name="android.intent.category.LAUNCHER" />
         </intent-filter>
      
      </activity>
      
   </application>
</manifest>

Intentemos ejecutar su aplicación AndroidSpinnerExample. Supongo que ha conectado su dispositivo móvil Android real con su computadora. Para ejecutar la aplicación desde Android Studio, abra uno de los archivos de actividad de su proyecto y haga clic en el icono Ejecutar de la barra de herramientas. Antes de iniciar su aplicación, Android Studio mostrará la siguiente ventana para seleccionar una opción donde desea ejecutar su aplicación de Android.

Si hace clic en el botón giratorio, aparecerá un menú desplegable como se muestra a continuación