Blog para desarrollo de aplicaciones en Android, aprende paso a paso como crear aplicaciones.

Usamos cookies propias y de terceros que entre otras cosas recogen datos sobre sus hábitos de navegación para mostrarle publicidad personalizada y realizar análisis de uso de nuestro sitio.
Si continúa navegando consideramos que acepta su uso. OK Más información | Y más

Como crear un Spinner en Android utilizando Kotlin

Android Kotlin Spinner Example


Hola amigos continuamos aprendiendo y en esta ocasión les enseñare a utilizar el control Widget Spinner utilizando programación Kotlin.
Android Studio - Spinner Kotlin

Crear proyecto de Spinner Kotlin Example

Vamos a crear nuestro proyecto utilizando soporte para Kotlin así desarrollaremos este ejemplo del Spinner.
Android Studio - Spinner Kotlin

Distintos atributos de Android Spinner Widget

Algunos de los atributos populares del widget spinner de android son:
No.Atributos XMLDescripción
1android:dropDownHorizontalOffsetEsto se usa para establecer el desplazamiento horizontal de la lista desplegable que se muestra en el control giratorio.
2android:dropDownSelectorEsto se usa como selector de lista cuando spinnerMode es un menú desplegable.
3android:dropDownVerticalOffsetEsto se usa para establecer el desplazamiento vertical de la lista desplegable que se muestra en el control giratorio.
4android:dropDownWidthEsto se usa para establecer el ancho del menú desplegable cuando spinnerMode = "dropdown"
5android:gravityEspecifica la posición del elemento seleccionado actualmente.
6android:popupBackgroundEstablece el fondo de la lista desplegable cuando spinnerMode = "dropdown"
7android:promptIndicación para mostrar cuándo se muestra el cuadro de diálogo de la flecha giratoria.
8android:spinnerModeEstablece el modo de visualización para las opciones de giro.
Los atributos del widget spinner también se heredan de AbsSpinner, ViewGroup y View. Algunos de los atributos populares de spinner de Android heredados de AbsSpinner son:
No.Atributos XMLDescripción
1android:entriesEsto se usa para establecer una referencia a un recurso de matriz que poblará el ruteador.
Algunos de los atributos populares de spinner de Android heredados de ViewGroup son:
No.Atributos XMLDescripción
1android:addStatesFromChildrenSe usa para establecer si el estado dibujable del grupo de visualización también incluye sus estados dibujables para niños.
2android:alwaysDrawnWithCacheSe usa para establecer si los hijos del grupo de visualización se dibujarán utilizando su caché dibujable o no.
3android:animateLayoutChangesDefine si los cambios en el diseño (causados por la adición y eliminación de elementos) deberían provocar la ejecución de una Transición de diseño.
4android:animationCacheSe usa para establecer si las animaciones de diseño deberían crear un caché de dibujo para sus hijos.
5android:clipChildrenSe usa para establecer si un niño está limitado a dibujar dentro de sus límites o no.
Algunos de los atributos populares de spinner de Android heredados de View son:
Sr.Atributos XMLDescripción
1android:alphaEspecifica alfa de la vista.
2android:backgroundEspecifica el fondo dibujable de la vista.
3android:clickableEspecifica si se puede hacer clic en la vista o no.
4android:elevationEspecifica la profundidad z base de la vista.
5android:idEspecifica el ID único de la vista. Nota: Id de la vista siempre debe ser único en un archivo xml.
6android:paddingEspecifica el relleno de la vista.
7android:textAlignmentEspecifica la alineación del texto.
8android:visibilityEspecifica la visibilidad (VISIBLE, INVISIBLE, etc.) de la vista.

Crearemos el diseño Spinner Kotlin Example


Ahora crearemos el diseño de nuestra aplicación para dejar claro el ejemplo del control Spinner utilizando Kotlin.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:orientation="vertical"
tools:context=".MainActivity">

<TextView
android:id="@+id/txtSpinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="25dp"
android:padding="20dp"/>

<Spinner
android:id="@+id/spinnerKotlin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:padding="25dp"
android:gravity="center">

<Spinner
android:id="@+id/spinnerKotlinName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>

</LinearLayout>
<!--Spinner Dinamico-->

<LinearLayout
android:id="@+id/linearDinamico"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:gravity="center"
android:padding="15dp"
android:orientation="vertical">

</LinearLayout>

</LinearLayout>

Android Studio - Spinner Kotlin

En el directorio Rest - values - String.xml añadiremos la siguiente linea de código.

<string name="selected_item">Seleccionar Item:</string>

Código de MainActivity Spinner Kotlin Example


Ahora en la clase del MaintAcitivity agregaremos nuestro código para nuestra aplicación.


import android.support.v7.app.AppCompatActivity
import android.os.Bundle
import kotlinx.android.synthetic.main.activity_main.*
import android.view.View
import android.view.ViewGroup
import android.widget.*

class MainActivity : AppCompatActivity(),AdapterView.OnItemSelectedListener {
//Declarar variables
var Lenguajes = arrayOf("Ingles", "Frances", "Español", "Indu", "Ruso", "Chino", "Aleman", "Protuguez", "Italiano", "Otro")
var spnKotlin:Spinner? = null
var textView_msg:TextView? = null

override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// Obtener referencias del objeto
textView_msg = this.txtSpinner

spnKotlin = this.spinnerKotlin
spnKotlin!!.setOnItemSelectedListener(this)

// Crea un ArrayAdapter usando un diseño de girador simple y una matriz de idiomas
val aa = ArrayAdapter(this, android.R.layout.simple_spinner_item, Lenguajes)
// Establecer el diseño para usar cuando aparece la lista de opciones
aa.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item)
// Establecer el adaptador a Spinner
spnKotlin!!.setAdapter(aa)

val Nombres = arrayOf("Sergio", "Brayan", "Juan", "Freddy", "Ferid", "Roberto", "Iliana")
val spinnerKotlinName = findViewById<Spinner>(R.id.spinnerKotlinName)
if (spinnerKotlinName != null) {
val arrayAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, Nombres)
spinnerKotlinName.adapter = arrayAdapter
spinnerKotlinName.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
Toast.makeText(this@MainActivity, getString(R.string.selected_item) + " " + Nombres[position], Toast.LENGTH_SHORT).show()
}
override fun onNothingSelected(parent: AdapterView<*>) {
// Código para realizar alguna acción cuando no se selecciona nada
}
}
}
// Obtener referencias del LinearLAyout
val linearLayout = findViewById<LinearLayout>(R.id.linearDinamico)
// Crear Spinner Dinamicamente Kotlin
val spinner = Spinner(this)
spinner.layoutParams = LinearLayout.LayoutParams(ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT)
// Variables
val personNames = arrayOf("Sergio", "Brayan", "Juan", "Freddy", "Ferid", "Roberto", "Iliana")
val arrayAdapter = ArrayAdapter(this, android.R.layout.simple_spinner_item, personNames)
spinner.adapter = arrayAdapter
// Evento de seleccion del Spinner Kotlin
spinner.onItemSelectedListener = object : AdapterView.OnItemSelectedListener {
override fun onItemSelected(parent: AdapterView<*>, view: View, position: Int, id: Long) {
// Mostrar elemento seleccionado en Spinner Kotlin
Toast.makeText(this@MainActivity, getString(R.string.selected_item) + " " + personNames[position], Toast.LENGTH_SHORT).show()
}

override fun onNothingSelected(parent: AdapterView<*>) {
//
}
}

// Añadir Spinner a LinearLayout Kotlin Example
linearLayout?.addView(spinner)
}

override fun onItemSelected(arg0: AdapterView<*>, arg1: View, position: Int, id: Long) {
textView_msg!!.text = "Seleccion : "+Lenguajes[position]
}

override fun onNothingSelected(arg0: AdapterView<*>) {

}
}

Android Studio - Spinner Kotlin

Curso Kotlin Español

No hay comentarios:

Publicar un comentario

x

Registrate!

Curso Android Español

Curso Kotlin Español

eBook Free Android Studio

Noticias y Eventos

¡Directamente a tu INBOX!

Le enviaremos nuestros recursos gratis. Para obtener nuestro contenido nuevo, únase a nuestra comunidad. No te molestaremos enviando información inútil. ¡No te pierdas ninguna actualización, mantente conectado! Recuerda verificar tu correo electronico.

Ingrese su dirección de correo electrónico:

Entregado por FeedBurner