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:
Publicación traducida automáticamente
Artículo escrito por Rishabh007 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA