Android Spinner es una vista similar a una 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. Primero, creamos un nuevo proyecto siguiendo los siguientes pasos:
- Haga clic en Archivo , luego en Nuevo => Nuevo proyecto .
- Después de eso, incluya el soporte de Kotlin y haga clic en siguiente.
- Seleccione el SDK mínimo según su conveniencia y haga clic en el botón siguiente .
- Luego seleccione la actividad vacía => siguiente => finalizar .
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. |
Modificar archivo activity_main.xml
En este archivo, usamos los widgets TextView y Spinner y también configuramos sus atributos.
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/linear_layout" android:gravity = "center"> <TextView android:id="@+id/txtView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Select language:" android:textSize = "20dp" /> <Spinner android:id="@+id/spinner" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignBottom="@id/txtView"/> </LinearLayout>
Actualizar el archivo strings.xml
Aquí, actualizamos el nombre de la aplicación usando la etiqueta de string. También creamos una lista de los elementos que se utilizarán en el menú desplegable.
XML
<resources> <string name="app_name">SpinnerInKotlin</string> <string name="selected_item">Selected item:</string> <string-array name="Languages"> <item>Java</item> <item>Kotlin</item> <item>Swift</item> <item>Python</item> <item>Scala</item> <item>Perl</item> </string-array> </resources>
Acceda a Spinner en el archivo MainActivity.kt
Primero, declaramos una variable languages para acceder a los elementos de strings del archivo strings.xml.
val languages = resources.getStringArray(R.array.Languages)
luego, accedemos al control giratorio y configuramos ArrayAdaptor para controlar la lista de elementos.
val spinner = findViewById(R.id.spinner) if (spinner != null) { val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, languages) spinner.adapter = adapter
Kotlin
package com.geeksforgeeks.myfirstkotlinapp import androidx.appcompat.app.AppCompatActivity import android.os.Bundle import android.view.View import android.widget.* class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // access the items of the list val languages = resources.getStringArray(R.array.Languages) // access the spinner val spinner = findViewById<Spinner>(R.id.spinner) if (spinner != null) { val adapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, languages) spinner.adapter = adapter spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener { override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) { Toast.makeText(this@MainActivity, getString(R.string.selected_item) + " " + "" + languages[position], Toast.LENGTH_SHORT).show() } override fun onNothingSelected(parent: AdapterView<*>) { // write code to perform some action } } } } }
Archivo AndroidManifest.xml
XML
<?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.geeksforgeeks.myfirstkotlinapp"> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/AppTheme"> <activity android:name=".MainActivity"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> </manifest>
Ejecutar como emulador:
Publicación traducida automáticamente
Artículo escrito por Praveenruhil y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA