Spinner en Android con Ejemplo

Android Spinner es una vista similar a la lista desplegable que se utiliza para seleccionar una opción de la lista de opciones. Proporciona una manera fácil de seleccionar un elemento de la lista de elementos y muestra una lista desplegable de todos los valores cuando hacemos clic en él. El valor predeterminado de la ruleta de Android será el valor seleccionado actualmente y, al usar el Adaptador , podemos vincular fácilmente los elementos a los objetos de la ruleta. Generalmente, llenamos nuestro control Spinner con una lista de elementos usando un ArrayAdapter en nuestro archivo Kotlin. 

Diferentes atributos para el widget Spinner

atributos XML Descripción
Android: identificación Se utiliza para especificar el id de la vista.
android:alineación de texto Se utiliza para la alineación del texto en la lista desplegable.
android:fondo Se utiliza para establecer el fondo de la vista.
Android: relleno Se utiliza para establecer el relleno de la vista.
Android: visibilidad Se utiliza para establecer la visibilidad de la vista.
Android: gravedad Se usa para especificar la gravedad de la vista como centro, arriba, abajo, etc.

Ejemplo para demostrar el Spinner

Aquí hay un ejemplo de una aplicación de Android que muestra la lista de cursos de GFG. Utilice ArrayAdapter para almacenar la lista de cursos. Cree una MainActivity única que contenga la rueda giratoria y, al hacer clic en cualquier elemento de la rueda giratoria, se mostrará Toast con ese nombre de curso. 

Creación de actividades: habrá una actividad y, por lo tanto, un archivo XML para MainActivity. activity_main.xml consiste en el XML

XML

<?xml version="1.0" encoding="utf-8"?>
<!--Constraint layout which contain Spinner widget-->
 
<android.support.constraint.ConstraintLayout
 
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.geeksforgeeks.Spinner.MainActivity">
 
    <!--Spinner widget-->
    <Spinner
        android:id="@+id/coursesspinner"
        android:layout_height="50dp"
        android:layout_width="160dp"
        android:layout_marginEnd="10dp"
        android:layout_marginStart="10dp"   
        android:layout_marginBottom="10dp"
        android:layout_marginTop="10dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"/>
   
</android.support.constraint.ConstraintLayout>

Creación del archivo Java y Kotlin: hay una actividad y, por lo tanto, un archivo Java/Kotlin para el archivo MainActivity. para la actividad principal, en la que se utiliza el adaptador de array para vincular los datos al control giratorio. Completaremos los datos en la array de strings y vincularemos esos datos a la rueda giratoria. Aquí está el código:  

Java

import android.support.v7.app.AppCompatActivity;
import android.widget.AdapterView;
import android.view.View;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.os.Bundle;
 
// Main Activity implements Adapter view
public class MainActivity
    extends AppCompatActivity
    implements AdapterView.OnItemSelectedListener {
 
    // create array of Strings
    // and store name of courses
    String[] courses = { "C", "Data structures",
                        "Interview prep", "Algorithms",
                        "DSA with java", "OS" };
 
    @Override
    protected void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        // Take the instance of Spinner and
        // apply OnItemSelectedListener on it which
        // tells which item of spinner is clicked
        Spinner spino = findViewById(R.id.coursesspinner);
        spin.setOnItemSelectedListener(this);
 
        // Create the instance of ArrayAdapter
        // having the list of courses
        ArrayAdapter ad
            = new ArrayAdapter(
                this,
                android.R.layout.simple_spinner_item,
                courses);
 
        // set simple layout resource file
        // for each item of spinner
        ad.setDropDownViewResource(
            android.R.layout
                .simple_spinner_dropdown_item);
 
        // Set the ArrayAdapter (ad) data on the
        // Spinner which binds data to spinner
        spino.setAdapter(ad);
    }
 
    // Performing action when ItemSelected
    // from spinner, Overriding onItemSelected method
    @Override
    public void onItemSelected(AdapterView<*> arg0,
                            View arg1,
                            int position,
                            long id)
    {
 
        // make toastof name of course
        // which is selected in spinner
        Toast.makeText(getApplicationContext(),
                    courses[position],
                    Toast.LENGTH_LONG)
            .show();
    }
 
    @Override
    public void onNothingSelected(AdapterView<*> arg0)
    {
        // Auto-generated method stub
    }
}

Kotlin

import android.os.Bundle
import android.view.View
import android.widget.AdapterView
import android.widget.AdapterView.OnItemSelectedListener
import android.widget.ArrayAdapter
import android.widget.Spinner
import android.widget.Toast
import androidx.appcompat.app.AppCompatActivity
 
class MainActivity : AppCompatActivity(), OnItemSelectedListener {
    // create array of Strings
    // and store name of courses
    var courses = arrayOf<String?>("C", "Data structures",
            "Interview prep", "Algorithms",
            "DSA with java", "OS")
 
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
 
        // Take the instance of Spinner and
        // apply OnItemSelectedListener on it which
        // tells which item of spinner is clicked
        val spin = findViewById<Spinner>(R.id.coursesspinner)
        spin.onItemSelectedListener = this
 
        // Create the instance of ArrayAdapter
        // having the list of courses
        val ad: ArrayAdapter<*> = ArrayAdapter<Any?>(
                this,
                android.R.layout.simple_spinner_item,
                courses)
 
        // set simple layout resource file
        // for each item of spinner
        ad.setDropDownViewResource(
                android.R.layout.simple_spinner_dropdown_item)
 
        // Set the ArrayAdapter (ad) data on the
        // Spinner which binds data to spinner
        spin.adapter = ad
    }
 
    override fun onItemSelected(parent: AdapterView<*>?,
                                view: View, position: Int,
                                id: Long) {
        // make toastof name of course
        // which is selected in spinner
        Toast.makeText(applicationContext,
                courses[position],
                Toast.LENGTH_LONG)
                .show()
    }
 
    override fun onNothingSelected(parent: AdapterView<*>?) {}
}

Producción: 

Spinner in Android with Example

Publicación traducida automáticamente

Artículo escrito por Rishabh007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *